ruby-on-rails – 在哈希数组中查找值以创建新的哈希数组
发布时间:2020-12-17 03:04:12 所属栏目:百科 来源:网络整理
导读:我有一些从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},...] 如果key = b和key = c,如何使用键和值b和c创建一个新的哈希数组?我想
我有一些从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},...] 如果key = b和key = c,如何使用键和值b和c创建一个新的哈希数组?我想传递密钥并返回值并保持密钥.所以我想最终得到: [{:b=>value2,:c=>value3},{:b=>value6,:c=>value7},{:b=>value10,:c=>value11},...] 解决方法
纯ruby
array = [{:a=>'value1',:b=>'value2',:c=>'value3',:d=>'value4'},{:a=>'value1',:d=>'value4'}] b_and_c_array = array.map{|a| a.select{|k,_| [:b,:c].include?(k)} } 我们使用将返回结果数组的map方法获取每个哈希.对于每个哈希,我们只选择[:b,:c]键.您可以在其中添加更多内容. 轨道 如果使用Rails,让我们使用Hash#slice,更漂亮: b_and_c_array = array.map{|a| a.slice(:b,:c) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |