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

aab*_*iro 5 ruby arrays ruby-on-rails

我有一个数组

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

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

Zor*_*ran 6

您可以使用该方法返回不带equals#reject对象的数组::units0

result.reject { |hash| hash[:units] == 0 }
Run Code Online (Sandbox Code Playgroud)

还有#reject!#delete_if,其使用方式与上面相同,但两者都会就地修改数组

希望这可以帮助!