JаvaScript: Сравнение двух массивов возвращающие различия
JаvaScript сравнивает два массива на предмет несовпадения или разницы в возврате. В этом руководстве вы узнаете, как сравнить два упорядоченных и неупорядоченных массива и объекта в JаvaScript и вернуть различия.
Сравнение двух массивов в jаvascript найти различия
Существуют разные подходы к поиску разницы между двумя массивами в JаvaScript:
- Если вы хотите сравнить элементы первого массива с элементами второго массива.
- Если вы хотите сравнить элементы первого массива и элементы второго массива и элементы второго массива с первым массивом.
У вас есть следующие два массива, например:
let arr1= [1,10,11,12,15,100,5,6,7,5];
let arr2= [1,10,11,12,15,100,50,60,70,50];
Подход 1: использование массива indexOf() и filter()
Использование методов indexOf() и filter() массива, чтобы найти разницу между двумя массивами.
let arr1= [1,10,11,12,15,100,5,6,7,5];
let arr2= [1,10,11,12,15,100,50,60,70,50];
let arrayDifference = arr1.filter(x => arr2.indexOf(x) === -1);
console.log(arrayDifference); // [5, 6, 7, 5]
Здесь сравниваются элементы arr1 во втором массиве, которых нет во втором массиве.
В этом подходе мы сравним элементы первого массива с элементами второго массива. И те, что не во втором массиве, будут найдены в выводе.
Подход 2: использование массивов include() и filter()
В подходе 1 мы использовали методы indexOf() и filter() для сравнения двух массивов.
Но вы можете использовать метод массива include() вместо массива indexOf().
let arr1= [1,10,11,12,15,100,5,6,7,5];
let arr2= [1,10,11,12,15,100,50,60,70,50];
let arrayDifference = arr1.filter(x => !arr2.includes(x));
console.log(arrayDifference); //[5, 6, 7, 5]
Подход 3: использование split(), indexOf(), sort(), map(), push()
Используя некоторый встроенный метод массива, такой как split(), indexOf(), sort(), toString(), map() и push() для сравнения первого массива из второго и второго массива из первого, получите разницу, которая не то же самое в обоих массивах.
Пример:
let arr1= [1,10,11,12,15,100,5,6,7,5];
let arr2= [1,10,11,12,15,100,50,60,70,50];
function arrayDifference(arr1, arr2) {
var arr = [];
arr1 = arr1.toString().split(',').map(Number);
arr2 = arr2.toString().split(',').map(Number);
// для array1
for (var i in arr1) {
if(arr2.indexOf(arr1[i]) === -1)
arr.push(arr1[i]);
}
// для array2
for(i in arr2) {
if(arr1.indexOf(arr2[i]) === -1)
arr.push(arr2[i]);
}
return arr.sort((x,y) => x-y);
}
console.log(arrayDifference(arr1, arr2)); // [5, 5, 6, 7, 50, 50, 60, 70]
Здесь, в третьем подходе, оба сравнивают массивы. И элементы, которых нет в обоих массивах, являются разницей в сравнении.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.