Ruby on rails:将散列中的所有特定键值存储到数组中
Ruby on rails: store all specific key values from a hash into an array
我如何创建一个包含所有“name_printed”键的数组,在以下散列中没有安全导航?
{
"show_data_on_file": "Yes",
"employees_names_printed_on_badges": [
{
"name_printed": "John",
"badge_id": 12160060
},
{
"name_printed": "Tom",
"badge_id": 12160080
}
]
}
您可以使用 Enumerable#pluck
。如果 employees_names_printed_on_badges
returns 是一个虚假值,您可以在空数组上调用 pluck
:
(data[:employees_names_printed_on_badges] || []).pluck(:name_printed)
# ["John", "Tom"]
或使用 &
,如果 data[:employees_names_printed_on_badges]&
为 nil,则结果为 nil。
data[:employees_names_printed_on_badges]&.pluck(:name_printed)
我如何创建一个包含所有“name_printed”键的数组,在以下散列中没有安全导航?
{
"show_data_on_file": "Yes",
"employees_names_printed_on_badges": [
{
"name_printed": "John",
"badge_id": 12160060
},
{
"name_printed": "Tom",
"badge_id": 12160080
}
]
}
您可以使用 Enumerable#pluck
。如果 employees_names_printed_on_badges
returns 是一个虚假值,您可以在空数组上调用 pluck
:
(data[:employees_names_printed_on_badges] || []).pluck(:name_printed)
# ["John", "Tom"]
或使用 &
,如果 data[:employees_names_printed_on_badges]&
为 nil,则结果为 nil。
data[:employees_names_printed_on_badges]&.pluck(:name_printed)