как сравнить два массива в javascript
4 года назад
Человек-Молекула
Ответы
9
Для того чтобы просто сравнить массивы по значениям:
function isArraysEqual(firstArray, secondArray) {
return firstArray.toString() === secondArray.toString();
}
или:
const areArraysEqual = (firstArray, secondArray) => {
if (
firstArray.length === secondArray.length &&
firstArray.every((element, index) => element === secondArray[index])
) {
return true;
}
return false;
};```
2 года назад
Иван Иващенко
6
Прямое сравнение массивов всегда будет давать результат false
. Поскольку массив, как объект, указывает на ссылку памяти, где хранится "значение". И эти ссылки всегда будут разными, за исключением случая когда мы сравниваем один и тот же объект (массив).
В последнем случае мы сравниваем один и тот же массив и получаем true
, т.к. в b
скопировалась ссылку на этот массив, а не значение.
2 года назад
Aleksey
3
Для того чтобы сравнить два массива и получить результат - например список уникальных значений, можно воспользоваться вложенными циклами:
3 года назад
Вячеслав Межуревский
1
function isEqual(array1, array2) {
return JSON.stringify(array1) === JSON.stringify(array2);
}
2 года назад
Денис