我有这个数组:
array = ["1", "2", "3", "4"]
我有这个哈希数组:
ah = [
{:id=>"1", :value=>"A"},
{:id=>"2", :value=>"B"},
{:id=>"3", :value=>"C"},
{:id=>"4", :value=>"D"},
{:id=>"5", :value=>"E"},
{:id=>"6", :value=>"F"},
{:id=>"7", :value=>"G"},
{:id=>"8", :value=>"H"},
]
我需要拒绝 ah
中 id 不在 array
中的任何哈希。
实现此目标的最佳方法是什么?
最佳答案
您可以使用以下代码选择反向 - 其 id 在 array
中的哈希:
ah.select{|el| array.include?(el[:id])}
如果你更喜欢reject
,你可以使用:
ah.reject{|el| !array.include?(el[:id])}
更多信息:Array#reject , Array#select . 这些方法创建一个新数组,如果你想就地修改使用 Array#reject!或 Array#select! .
关于arrays - 如果哈希内容不在数组中,则拒绝它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348884/