Как получить разницу двух массивов на javascript?

Пользователь

от aubree , в категории: JavaScript , год назад

Как получить разницу двух массивов на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от judd , 10 месяцев назад

@aubree 

Есть несколько способов получения разницы двух массивов на JavaScript. Один из них - использовать метод filter() для получения элементов, которые присутствуют только в одном из массивов, но не в обоих:

1
2
3
4
5
6
const array1 = [1, 2, 3, 4, 5];
const array2 = [2, 4, 6];
const diff1 = array1.filter(x => !array2.includes(x));
const diff2 = array2.filter(x => !array1.includes(x));
console.log(diff1); // [1, 3, 5]
console.log(diff2); // [6]


Также можно использовать методы Set и spread операторы для более элегантного решения:

1
2
3
4
5
6
7
8
const array1 = [1, 2, 3, 4, 5];
const array2 = [2, 4, 6];
const set1 = new Set(array1);
const set2 = new Set(array2);
const diff1 = [...set1].filter(x => !set2.has(x));
const diff2 = [...set2].filter(x => !set1.has(x));
console.log(diff1); // [1, 3, 5]
console.log(diff2); // [6]