Существует третий способ взглянуть на это решение, которое напрямую отвечает на вопрос и не требует использования наборов:
r = (a-b) | (b-a)
(ab) даст вам то, что находится в массиве a, но неb:
a-b
=> [3]
(ba) даст вам то, что находится в массиве b, но не a:
b-a
=> []
ИЛИ вычитание двух массивов даст вам окончательный результат всего, чтоотсутствует в обоих массивах:
r = ab | ba
=> [3]
Другой пример может сделать это еще более ясным:
a = [1,2,3]
=> [1, 2, 3]
b = [2,3,4]
=> [2, 3, 4]
a-b
=> [1]
b-a
=> [4]
r = (a-b) | (b-a)
=> [1, 4]