Сравнение массивов

Так как массивы - это ссылочный тип данных, то два массива, с виду идентичных, будут НЕ равны друг другу

console.log( [1, 2] == [1, 2] ) // fasle

Однако, если переменная будет указывать на один и тот же массив, сравнение вернет true

var arr1 = [1, 2];
var arr2 = arr1;

console.log( arr1 == arr2 ) // true

Можно сравнить два идентичный массива с помощью методов объекта JSON

var arr1 = [1, 2];
var arr2 = [1, 2];

console.log( arr1 == arr2 ) // false

console.log(JSON.stringify(arr1) == JSON.stringify(arr2)); // true

УТОЧНИТЬ!!!

Однако, такой подход может быть не очень надежным, например:

var arr1 = [4, {"a":1, "b":2}] ;
var arr2 = [4, {"b":2, "a":1}] ; // изменен порядок в объекте

console.log( JSON.stringify(arr1) === JSON.stringify(arr2) ); // false

С помощью цикла for

function equalArrays(a,b) {
  if (a.length != b.length) return false; // Мас­си­вы раз­ной дли­ны не рав­ны

 for(var i = 0; i < a.length; i++) // Цикл по всем эле­мен­там
   if (a[i] !== b[i]) return false; // Ес­ли хоть один эле­мент от­ли­ча­ет­ся, мас­си­вы не рав­ны

 return true; // Ина­че они рав­ны
}

<<< back

results matching ""

    No results matching ""