【问题标题】:Delete array elements from another array从另一个数组中删除数组元素
【发布时间】:2014-03-31 21:58:09
【问题描述】:

我有 2 个数组

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

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

当然,我的真实数组是不一样的。

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

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

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

【问题讨论】:

  • a-b 得到你想要的。

标签: ruby-on-rails ruby arrays optimization


【解决方案1】:

只需使用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

【讨论】:

  • 漂亮!谢谢,接受;顺便告诉我reject方法的使用方法(这里可以用吗)?
  • @sidney 你可以使用 - a.reject { |e| b.include?(e) } .. 但 Array#- 非常适合。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多