Нахождение разницы между двумя массивами — обычная задача в программировании на JavaScript. В этой статье блога мы рассмотрим различные методы выполнения этой задачи, а также примеры кода. К концу этой статьи вы будете хорошо понимать различные подходы, которые можно использовать для поиска разницы между двумя массивами в JavaScript.
Метод 1: использование метода filter()
function arrayDifference(arr1, arr2) {
return arr1.filter(element => !arr2.includes(element));
}
// Example usage
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
console.log(arrayDifference(array1, array2)); // Output: [1, 2]
Метод 2: использование объекта Set
function arrayDifference(arr1, arr2) {
const set1 = new Set(arr1);
const set2 = new Set(arr2);
return [...arr1.filter(element => !set2.has(element)), ...arr2.filter(element => !set1.has(element))];
}
// Example usage
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
console.log(arrayDifference(array1, array2)); // Output: [1, 2, 6, 7]
Метод 3: использование метода уменьшения()
function arrayDifference(arr1, arr2) {
return arr1.reduce((result, element) => {
if (!arr2.includes(element)) {
result.push(element);
}
return result;
}, []);
}
// Example usage
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
console.log(arrayDifference(array1, array2)); // Output: [1, 2]
Метод 4. Использование библиотеки lodash
const _ = require('lodash');
function arrayDifference(arr1, arr2) {
return _.difference(arr1, arr2);
}
// Example usage
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
console.log(arrayDifference(array1, array2)); // Output: [1, 2]
Метод 5. Использование цикла for
function arrayDifference(arr1, arr2) {
const result = [];
for (let i = 0; i < arr1.length; i++) {
if (!arr2.includes(arr1[i])) {
result.push(arr1[i]);
}
}
return result;
}
// Example usage
const array1 = [1, 2, 3, 4, 5];
const array2 = [3, 4, 5, 6, 7];
console.log(arrayDifference(array1, array2)); // Output: [1, 2]