本文介绍了在Ruby中从哈希数组中删除哈希的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
[{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-}]
解决方案
使用:
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-}] $ b
如果没有匹配条件的哈希,数组保持不变。
I have an array of hashes as following:
[{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}, {"k1"=>"v3", "k2"=>"5.1%"}]
Now, I want to first check whether the array contains a hash with key "k1"
with value "v3"
. If yes, then I want to delete that hash from the array.
The result should be:
[{"k1"=>"v1", "k2"=>"75.1%"}, {"k1"=>"v2", "k2"=>"-NA-"}]
解决方案
Use 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-"}]
If there is no hash matching the condition, the array is left unchanged.
这篇关于在Ruby中从哈希数组中删除哈希的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!