我有一个像这样的基础数组
base_array=[0,3,5]
有一个
second_array=[4,5,6,0,5,4]
我想要的是从second_array
创建一个新数组,但过滤掉base_array
所以新数组看起来像这样
new_array=[5,0,5]
我怎样才能在红宝石中做到这一点? 谢谢。
答案 0 :(得分:4)
如果您只是想要这些值并且不关心出现次数,您可以使用交叉点:
base_array & second_array
=> [0, 5]
否则只需选择它们:
second_array.select { |v| base_array.include?(v) }
=> [5, 0, 5]
答案 1 :(得分:3)
试试这个
new_array = second_array - (second_array - base_array )
[4,5,6,0,5,4] - ([4,5,6,0,5,4] - [0,3,5])
>> [5, 0, 5]