在ruby中寻找来自不同阵列的匹配

时间:2017-11-13 08:57:03

标签: ruby

我有一个像这样的基础数组

base_array=[0,3,5]

有一个

second_array=[4,5,6,0,5,4]

我想要的是从second_array创建一个新数组,但过滤掉base_array

中缺少的值

所以新数组看起来像这样

new_array=[5,0,5]

我怎样才能在红宝石中做到这一点? 谢谢。

2 个答案:

答案 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]