Jak wyszukać różnice pomiędzy dwoma tablicami w Javascript?

Znaleźć różnice pomiędzy dwoma tablicami w JS można uzyskać na wiele różnych sposobów. Oto kilka przykładów:
1. Używając pętli for
function findDiff(array1, array2) {
let diffs = [];
for (let i = 0; i < array1.length; i++) {
if (!array2.includes(array1[i])) {
diffs.push(array1[i]);
}
}
for (let i = 0; i < array2.length; i++) {
if (!array1.includes(array2[i])) {
diffs.push(array2[i]);
}
}
return diffs;
}
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
console.log(findDiff(array1, array2)); // Output: [1, 2, 6, 7]
2. Używając metody filter()
function findDiff(array1, array2) {
const diffs = array1.filter(element => !array2.includes(element))
.concat(array2.filter(element => !array1.includes(element)));
return diffs;
}
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
console.log(findDiff(array1, array2)); // Output: [1, 2, 6, 7]
3. Używając metody reduce()
function findDiff(array1, array2) {
const diffs = array1.concat(array2).reduce((acc, curr) => {
if (!array1.includes(curr) || !array2.includes(curr)) {
acc.push(curr);
}
return acc;
}, []);
return diffs;
}
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
console.log(findDiff(array1, array2)); // Output: [1, 2, 6, 7]
Inne z tej kategorii: Programowanie
Takie tam: www.marczuk.org