У меня есть два массива строк, и я хотел бы найти набор строк не на пересечении обоих. Эквивалент SETXOR в MATLAB - это то, что я хочу: http://www.mathworks.com/help/techdoc/ref/setxor.html
Я использую термин, взаимозаменяемый с массивом.
Конечно, я мог бы так же легко написать свое время, затраченное на формирование этого вопроса, но я подумал, что должен спросить.
array1 + array2 - (array1 & array2)
Это было короче, чем написать вопрос ...
Кстати, у Ruby есть класс Set , поэтому лучше не использовать это слово как синонимв массив.
Да, как говорит Накилон, Сет.
require 'set' s = Set.new('a'..'f') a = ['f','d','e','e','h','i'] #or any enum p s ^ a #=> #<Set: {"h", "i", "a", "b", "c"}>
Вы всегда можете просто сделать
(array0 - array1) + (array1 - array0) a = [1, 2, 3, 4, 5] b = [2, 5, 8] (a - b) + (b - a) # => [1, 3, 4, 8]