当我有2个数组(列表)时,Ruby有一个我可以使用的方法吗?我想获得只有两个数组共有的值的数组(列表)?像这样......
a = [1,2,3]
b = [3,4,5]
=> the method would return [3]
反过来说,这些数组(列表)中的“唯一”值。
a = [1,2,3]
b = [3,4,5]
=> the method would return [1,2,4,5]
答案 0 :(得分:2)
您要查找的字词是交集和对称差异。 AFAIK就是Ruby中的这个:
[1,2,3] & [3,4,5] = [3]
[1,2,3] ^ [3,4,5] = [1,2,4,5]
答案 1 :(得分:2)
AND : a & b
Ruby中的数组没有XOR方法,所以你可以通过其他方法来实现。这有两种方式:
XOR : (a | b) - (a & b)
XOR : (a + b) - (a & b) # this result can have duplicates!
XOR : (a - b) | (b - a)
XOR : (a - b) + (b - a) # this result can have duplicates!