4

我有一些从 api 返回的数据,我已将其解析为:

[{:a=>value1, :b=>value2, :c=>value3, :d=>value4}, {:a=>value5, :b=>value6, :c=>value7, :d=>value8},{:a=>value9, :b=>value10, :c=>value11, :d=>value12}, ...]

如何使用和的键和值b创建一个新的哈希数组c,给定key = bkey = c?我想传递密钥并返回值并维护密钥。所以我想结束:

[{:b=>value2, :c=>value3}, {:b=>value6, :c=>value7}, {:b=>value10, :c=>value11}, ...]
4

1 回答 1

8

纯红宝石

array = [{:a=>'value1', :b=>'value2', :c=>'value3', :d=>'value4'}, {:a=>'value1', :b=>'value2', :c=>'value3', :d=>'value4'}]

b_and_c_array = array.map{|a| a.select{|k, _| [:b, :c].include?(k)} }

我们使用map将返回结果数组的方法获取每个散列。对于每个散列,我们只选择[:b, :c]键。您可以在其中添加更多内容。

导轨

如果使用 Rails,让我们使用Hash#slice, prettier :

b_and_c_array = array.map{|a| a.slice(:b, :c) }
于 2012-11-12T21:14:50.910 回答