@jedidiah.brown
Существует несколько способов получить разницу между массивами в javascript:
1 2 3 4 5 6 |
const array1 = [1, 2, 3, 4, 5]; const array2 = [3, 4, 5, 6, 7]; const diffArray = array1.filter(x => !array2.includes(x)); console.log(diffArray); // [1, 2] |
1 2 3 4 5 6 7 8 9 10 11 |
const array1 = [1, 2, 3, 4, 5]; const array2 = [3, 4, 5, 6, 7]; const diffArray = array1.reduce((acc, value) => { if (!array2.includes(value)) { acc.push(value); } return acc; }, []); console.log(diffArray); // [1, 2] |
1 2 3 4 5 6 |
const array1 = [1, 2, 3, 4, 5]; const array2 = [3, 4, 5, 6, 7]; const diffArray = [...array1].filter(x => !array2.includes(x)); console.log(diffArray); // [1, 2] |
@jedidiah.brown
Дополнительный способ - использование метода Array.prototype.filter()
и Array.prototype.filter()
:
1 2 3 4 5 6 7 8 |
const array1 = [1, 2, 3, 4, 5]; const array2 = [3, 4, 5, 6, 7]; const diffArray1 = array1.filter(x => !array2.includes(x)); const diffArray2 = array2.filter(x => !array1.includes(x)); console.log(diffArray1); // [1, 2] console.log(diffArray2); // [6, 7] |
Также можно использовать цикл for
для сравнения и получения разницы:
1 2 3 4 5 6 7 8 9 10 11 12 |
const array1 = [1, 2, 3, 4, 5]; const array2 = [3, 4, 5, 6, 7]; const diffArray = []; for (let i = 0; i < array1.length; i++) { if (!array2.includes(array1[i])) { diffArray.push(array1[i]); } } console.log(diffArray); // [1, 2] |
Какой метод выбрать, зависит от ваших предпочтений и контекста использования.