Найти тему

Как сравнить два массива в JavaScript?


На первый взгляд это просто:
arrayA == arrayB
arrayA === arrayB

Но эти варианты не сработают. Если мы создаем массивы так:
const arrayA = [1, 2, 3];
const arrayB = arrayA;

Такие массивы всегда будут равны, так как ссылаются на один и тот же объект.

Другой вариант, если мы создадим два похожих массива:
const arrayA = [1, 2, 3];
const arrayB = [1, 2, 3];

В таком случае массивы всегда будут не равны, так как это разные объекты, хотя и выглядят одинаково.

Самый простой способ - использовать JSON.stringify() :
const arrayA = [1, 2, 3];
const arrayB = [1, 2, 3];
JSON.stringify(arrayA) == JSON.stringify(arrayB) // Выводит true

Данный способ может быть неэффективным, если нужно сравнить большие массивы, поскольку преобразует массивы в строку.

Более эффективным способом является перебор и сравнение элементов. Скриншот функции прилагается.

const arrayA = [1, 2, 3];
const arrayB = [1, 2, 3];
areArraysEqual(arrayA, arrayB) // Выводит true

Как сравнить два массива в JavaScript?  На первый взгляд это просто: arrayA == arrayB arrayA === arrayB  Но эти варианты не сработают.
Около минуты