在ruby中,您可以使用&运算符使两个数组相交。
我在试着拿到交叉口的剩余部分。
如果我使用一个简单的例子,-就足够了:
array_1 = [0, 1]
array_2 = [0]
array_1 - array_2 => [1]现在假设我们让0在第一个数组中出现多次
array_1 = [0, 0, 1]
array_2 = [0]
array_1 - array_2 => [1]我想知道获得第一个数组与第一个数组和第二个数组的交集之间的差异的最简单方法
array_1 = [0, 0, 1]
array_2 = [0]
array_1 ??? array_2 => [0, 1]发布于 2018-05-20 04:04:10
我已经将你想要添加到proposed核心的方法添加到了Ruby中。有关其用法的示例,请参阅链接。
class Array
def difference(other)
h = other.each_with_object(Hash.new(0)) { |e,h| h[e] += 1 }
reject { |e| h[e] > 0 && h[e] -= 1 }
end
end
a = [1,2,3,4,3,2,2,4]
b = [2,3,4,4,4]
a.difference b
#=> [1, 3, 2, 2] https://stackoverflow.com/questions/50424389
复制相似问题