我有一个哈希数组如下:
[{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}, {"k1"=>"v3", "k2"=>"5.1%"}]
现在,我想首先检查数组是否包含键 "k1"
和值 "v3"
的散列。如果是,那么我想从数组中删除该散列。
结果应该是:
[{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}]
最佳答案
使用Array#delete_if
:
arr = [{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}, {"k1"=>"v3", "k2"=>"5.1%"}]
arr.delete_if { |h| h["k1"] == "v3" }
#=> [{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}]
如果没有匹配条件的hash,则数组保持不变。
关于ruby - 从 Ruby 中的哈希数组中删除哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19218208/