从另一个数组中删除数组元素

时间:2014-03-31 13:57:13

标签: ruby-on-rails ruby arrays optimization

我有2个数组

a = [1,2,3,4,5]
b = [4,5,6,7,8]

我想删除 a 中的每个 b 元素,以便拥有[1,2,3]

当然,我的真实阵列是不同的。

我想用一个简单的方法得到一个漂亮的答案,因为我可以通过使用这个循环解决这个问题,但我发现它很难看。

b.each do |e|
  a.delete(e) if a.include?(e)
end
return a

似乎reject可能是要走的路,但找不到好方法。谢谢你

1 个答案:

答案 0 :(得分:6)

使用Array Difference执行以下操作: -

a = [1,2,3,4,5]
b = [4,5,6,7,8]
a = a - b
a # => [1,2,3]

但我建议,不要修改源数组。而是

new_ary = a - b