我试图过滤基于另一个数组的哈希数组。做到这一点的最佳方法是什么?这是我目前所使用的2种蛮兽:

x=[1,2,3]
y = [{dis:4,as:"hi"},{dis:2,as:"li"}]

1) aa = []
x.each do |a|
  qq = y.select{|k,v| k[:dis]==a}
  aa+=qq unless qq.empty?
end

2) q = []
y.each do |k,v|
  x.each do |ele|
    if k[:dis]==ele
      q << {dis: ele,as: k[:as]}
    end
  end
end

这是我想要的输出:
[{dis:2,as:"li"}]

最佳答案

如果只想选择:dis中包含x值的元素:

y.select{|h| x.include? h[:dis]}

10-07 19:04