ruby - 根据键的值将哈希数组一分为二

标签 ruby arrays

如何根据 ate 键的值将这个哈希数组一分为二?

array = [
  { name: "Gad", ate: true },
  { name: "Lad", ate: false },
  { name: "Bad", ate: true },
  { name: "Sad", ate: false }
]

示例输出

array_1 = [
  { name: "Gad", ate: true },
  { name: "Bad", ate: true }
]
array_2 = [
  { name: "Lad", ate: false },
  { name: "Sad", ate: false }
]

最佳答案

使用 Enumerable#partition方法:

array.partition { |x| x[:ate] }
# => [[{:name=>"Gad", :ate=>true}, {:name=>"Bad", :ate=>true}], 
#     [{:name=>"Lad", :ate=>false}, {:name=>"Sad", :ate=>false}]]

或者:

array_1, array_2 = array.partition { |x| x[:ate] }

array_1
# => [{:name=>"Gad", :ate=>true}, {:name=>"Bad", :ate=>true}]

array_2
# => [{:name=>"Lad", :ate=>false}, {:name=>"Sad", :ate=>false}]

关于ruby - 根据键的值将哈希数组一分为二,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21583849/

相关文章:

c - 为什么我的代码不打印排序数组?

perl - 如何使用 Perl 将多维数组 (AoA) 添加到 Excel?

C将Char数组(字符串)转换为int数组

ruby - 事件机器 : How to receive file uploads?

ruby-on-rails - 从父 Factory Girl 工厂访问子属性

javascript - 在 Ruby/Javascript 中设置按钮的 href

javascript - js 与数组匹配搜索

ruby - 如何在 ROR 中将阿拉伯数字 Ascii 代码转换为字符串?

ruby-on-rails - rails 测试: RuntimeError: can't modify frozen String

javascript - 根据属性值创建多个对象数组,然后迭代每个数组