Ситуация, при которой массивы равны
var massiv1 = [3,2,1] var massiv2 = massiv1 massiv1 == massiv2 true massiv1 === massiv2 true
Если мы объявим переменную massiv1 и положим в неё массив, то наше название переменной по сути будет ссылкой на объект массива в оперативной памяти.
Если мы объявим новую переменную massiv2 и положим в неё ссылку на первый массив, то наше название переменной по сути будет ссылкой на ссылку, которая по итогу будет равна объекту массива в оперативной памяти.
В этой ситуации равенство логично и понятно. Эта ситуация очень похожа на то, как если бы вы рассказали вашему другу как пройти к Гипермаркету. Он не знает как пройти, а вы знаете. Когда вы ему расскажете как пройти, тогда он тоже будет знать путь до этого Гипермаркета. В результате вы будете говорить об одном и том же Гипермаркете т. к. это конечный источник данных.
Но ситуация меняется, когда данные приходят с разных сторон и хранятся в разных источниках памяти. То есть визуально и по составу они могут быть 100% одинаковые. Но такой подход нарушает логику «уникальности» объекта и JavaScript воспринимает два массива как разные. Пример ниже.
Видео
Как проверить похож ли один массив на другой?
Есть два массива:
var m1 = [1,2,3] var m2 = [1,2,3]
Эти два массива одинаковы по своей сути, но они занимают разные участки оперативной памяти. Любое сравнение этих двух массивов вернёт нам ЛОЖЬ — false.
m1 == m2 false m1 === m2 false
Вывод в консоль браузера

Это происходит потому что JavaScript хранит две ссылки на два места в оперативной памяти. Разное место в памяти, значит массивы разные.
Как быть в этой ситуации?
Нужно попытаться привести массивы к примитивному типу данных — строке (String). Примитивы сравниваются по другим критериям. Пример:
"примитив" == "примитив" true "примитив" === "примитив" true

Когда мы работаем с массивами, тогда мы можем привести массив к строке при помощи конструктора JSON и его метода strigify()
JSON.stringify(m1) == JSON.stringify(m2) true JSON.stringify(m1) === JSON.stringify(m2) true

JSON.stringify(m1) "[1,2,3]" JSON.stringify(m2) "[1,2,3]"

Информационные ссылки
Стандарт ECMAScript — Раздел «25.5 The JSON Object» — https://tc39.es/ecma262/#sec-json-object