根据属性值从Ruby中的数组中删除/删除对象

时间:2018-07-17 15:27:34

标签: ruby-on-rails arrays ruby

我有一个数组

result = [{:cluster=>[0, 4], :id=>1, :units=>346, :num1=>0.161930681e7, :num2=>0.14223512616e9, "description"=>"Foo"}, { ...

我想取出任何单位数等于0的对象。寻找与array.splice()类似的东西,但要寻找 Ruby 最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用#reject方法返回不包含eval_config等于:units的对象的数组:

0

还有result.reject { |hash| hash[:units] == 0 } #delete_if,它们可以与上述相同的方式使用,但都可以就地修改数组。

希望这会有所帮助!

答案 1 :(得分:0)

您可以使用在Array类上实现的select方法来获得相同的结果:

result.select { |el| el[:units] == 0 }