Ruby - объединить два массива и удалить значения, которые дублируются
У меня есть два массива
a = [1, 2, 3, 4, 5]
b = [2, 4, 6]
Я хотел бы объединить два массива, а затем удалить значения, одинаковые с другим массивом. Результат должен быть:
c = [1, 3, 5, 6]
Я попытался вычесть два массива, а результат - [1, 3, 5]. Я также хочу получить значения из второго массива, который не дублируется из первого массива.
Ответы
Ответ 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]