@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]
|
Какой метод выбрать, зависит от ваших предпочтений и контекста использования.