加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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) }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读