【问题标题】:Ruby on rails: store all specific key values from a hash into an arrayRuby on rails:将哈希中的所有特定键值存储到数组中
【发布时间】:2022-01-01 11:24:45
【问题描述】:

如何使用 nil 安全导航在以下哈希中创建所有“name_printed”键的数组?

 {
  "show_data_on_file": "Yes",
  "employees_names_printed_on_badges": [
    {
      "name_printed": "John",
      "badge_id": 12160060
    },
    {
      "name_printed": "Tom",
      "badge_id": 12160080
    }
  ]
}

【问题讨论】:

    标签: ruby ruby-on-rails-5


    【解决方案1】:

    您可以使用Enumerable#pluck。如果employees_names_printed_on_badges 返回一个假值,则在一个空数组上调用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 密钥而不查看:employees_names_printed_on_badges
    • 您需要首先引用employees_names_printed_on_badges,这就是使用哈希的关键。或者您可以从数组的值映射每个 name_printed。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2016-05-29
    • 2017-12-11
    • 1970-01-01
    • 2014-04-09
    • 2012-04-08
    相关资源
    最近更新 更多