Метод для общих значений в двух списках - PullRequest
4 голосов
/ 11 января 2011

Есть ли в Ruby метод, который я мог бы использовать, когда у меня есть 2 массива (списки) и я хочу получить массив (список) только значений, общих для обоих массивов? Как это ..

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]

Ответы [ 2 ]

2 голосов
/ 11 января 2011
AND : a & b

В Ruby нет метода XOR для массивов, поэтому вы можете сделать это с помощью других методов.Вот 2 способа:

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!
2 голосов
/ 11 января 2011

Слова, которые вы ищете: пересечение и симметричная разница .AFAIK это все в Ruby:

[1,2,3] & [3,4,5] = [3]
[1,2,3] ^ [3,4,5] = [1,2,4,5]
...