@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] |
@aubree
Еще один способ получить разницу двух массивов в JavaScript - использовать методы filter() и includes() для создания нового массива, содержащего только уникальные элементы:
1 2 3 4 5 |
const array1 = [1, 2, 3, 4, 5]; const array2 = [2, 4, 6]; const diff = array1.filter(x => !array2.includes(x)) .concat(array2.filter(x => !array1.includes(x))); console.log(diff); // [1, 3, 5, 6] |
Этот подход позволяет получить разницу обоих массивов в одном массиве.