【问题标题】:Pull key value from an array of hashes?从散列数组中提取键值?
【发布时间】:2013-05-11 18:33:09
【问题描述】:

我有一个哈希数组,如下所示:

[
   {"name"=>"Bob Jones", "id"=>"100005913544738"},
   {"name"=>"Jimmy Smith", "id"=>"100005934513815"},
   {"name"=>"Abe Lincoln", "id"=>"100005954493955"}
]

我最终只希望将这些 id 放在一个数组中,如下所示:

[ 100005913544738, 100005934513815, 100005954493955 ]

我正在运行 Ruby 1.9.3。

【问题讨论】:

    标签: ruby arrays hash


    【解决方案1】:
    a = [{"name"=>"Bob Jones", "id"=>"100005913544738"},
         {"name"=>"Jimmy Smith", "id"=>"100005934513815"},
         {"name"=>"Abe Lincoln", "id"=>"100005954493955"}]
    
    a.map{|h| h['id'].to_i}
    # => [100005913544738, 100005934513815, 100005954493955]
    

    Enumerable#map 是一个非常方便熟悉的方法。

    同样值得注意的是,如果您可以控制原始数组的生成,则使用符号(例如,:name:id)而不是字符串作为哈希键更像 Ruby。这个有many reasons

    【讨论】:

      【解决方案2】:
      h = [
         {"name"=>"Bob Jones", "id"=>"100005913544738"},
         {"name"=>"Jimmy Smith", "id"=>"100005934513815"},
         {"name"=>"Abe Lincoln", "id"=>"100005954493955"}
      ]
      
      h.map{|i| i.fetch("id").to_i}
      #=> [100005913544738, 100005934513815, 100005954493955]
      

      【讨论】:

        猜你喜欢
        • 2014-03-14
        • 1970-01-01
        • 2013-05-23
        • 2011-01-15
        • 2015-02-03
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 2021-01-25
        相关资源
        最近更新 更多