我有这个数组:
array = ["1", "2", "3", "4"]
Run Code Online (Sandbox Code Playgroud)
我有这个哈希数组:
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"},
]
Run Code Online (Sandbox Code Playgroud)
我需要拒绝ah其id不在的任何哈希值array.
实现这一目标的最佳方法是什么?
您可以array使用以下代码选择反向 - 其id为的哈希:
ah.select{|el| array.include?(el[:id])}
Run Code Online (Sandbox Code Playgroud)
如果您愿意reject,可以使用:
ah.reject{|el| !array.include?(el[:id])}
Run Code Online (Sandbox Code Playgroud)
有关更多信息:Array#reject,Array#select.这些方法创建一个新数组,如果要在适当位置修改使用Array#reject!或者数组#选择!.