Подтвердить что ты не робот

Ruby - объединить два массива и удалить значения, которые дублируются

У меня есть два массива

a = [1, 2, 3, 4, 5]

b = [2, 4, 6]

Я хотел бы объединить два массива, а затем удалить значения, одинаковые с другим массивом. Результат должен быть:

c = [1, 3, 5, 6]

Я попытался вычесть два массива, а результат - [1, 3, 5]. Я также хочу получить значения из второго массива, который не дублируется из первого массива.

4b9b3361

Ответ 1

Вы можете сделать следующее!

# Merging
c = a + b
 => [1, 2, 3, 4, 5, 2, 4, 6]
# Removing the value of other array
# (a & b) is getting the common element from these two arrays
c - (a & b)
=> [1, 3, 5, 6]

Комментарий Дмитрия тоже такой же, хотя я придумал свою идею самостоятельно.

Ответ 2

Используйте Array#uniq.

a = [1, 3, 5, 6]
b = [2, 3, 4, 5]

c = (a + b).uniq
=> [1, 3, 5, 6, 2, 4]

Ответ 3

Как насчет этого.

(a | b)
=> [1, 2, 3, 4, 5, 6]
(a & b)
=> [2, 4]

(a | b) - (a & b)
[1, 3, 5, 6]