获取Ruby中的数组差异

Kir*_*Kir 43 ruby

可能重复:
diff一个ruby字符串或数组

我有一个旧的数组:[1, 2, 3, 4, 5]和新的:[1, 2, 4, 6]

如何与Ruby区别开来:5, 3已删除并6添加了?

Dog*_*ert 98

irb(main):001:0> a = [1, 2, 3, 4, 5]
=> [1, 2, 3, 4, 5]
irb(main):002:0> b = [1, 2, 4, 6]
=> [1, 2, 4, 6]
irb(main):003:0> a - b
=> [3, 5]
irb(main):005:0> b - a
=> [6]
irb(main):006:0>
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要两种方式差异`a - b | b - a` (6认同)
  • 请注意,它只能使用唯一值,如果a = [1,1,2,3,4,5]你仍然得到相同的[3,5]而不是正确的[1,3,5] (3认同)
  • 在 ruby​​ 2.6 中,我们有 #difference 方法 https://ruby-doc.org/core-2.6/Array.html#method-i-difference (3认同)
  • @s1mpl3 :非常注意,`[ 1, 1 ] - [ 1] => [] ` ;它看起来不是数组差异的精确定义;但是你如何给它一个正确的定义呢?什么叫“正确”? (2认同)