alw*_*615 4 ruby arrays hash ruby-on-rails
我有一些从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}, ...]
Run Code Online (Sandbox Code Playgroud)
我怎样才能创建一个散列的新数组键和值的b和c给予,key = b和key = c?我想传递密钥并返回值并保持密钥.所以我想最终得到:
[{:b=>value2, :c=>value3}, {:b=>value6, :c=>value7}, {:b=>value10, :c=>value11}, ...]
Run Code Online (Sandbox Code Playgroud)
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)} }
Run Code Online (Sandbox Code Playgroud)
我们使用map将返回结果数组的方法获取每个哈希.对于每个哈希,我们只选择[:b, :c]键.您可以在其中添加更多内容.
如果使用Rails,让我们使用Hash#slice,更漂亮:
b_and_c_array = array.map{|a| a.slice(:b, :c) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2235 次 |
| 最近记录: |