arrays - 如果哈希内容不在数组中,则拒绝它们

标签 arrays ruby hash

我有这个数组:

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/

相关文章:

sql-server - 在 SQL Server 中获取 HASHBYTES() 方法的不同结果

javascript:设置数组索引值不起作用?

python - Pybind11:将 Python 列表传递给 C 样式数组

ruby-on-rails - 有没有办法阻止这种默认插入 rails

c++ - 为什么LLVM选择开放寻址哈希表来实现llvm::StringMap?

c++ - 哈希键和值

ios - 将一系列对象从一个数组添加到另一个数组

c++ - 在 C++ 构造函数中为结构数组分配存储空间

ruby - 在数组数组上计算数组乘积

ruby - 如何在 Shoes 应用程序中启用文本选择、复制和粘贴?