[JavaScript] 배열 비교하기

728x90

JavaScript에서 배열 비교

JavaScript에서 배열과 객체는 참조형 데이터이다.

이는 변수에 배열 자체가 아닌 배열을 가리키는 참조(주소)가 저장된다는 의미이다.

따라서 두 배열이 같은 요소를 가지고 있어도 다른 메모리 주소에 저장되어 있다면 엄격 비교(===)나 동등 비교(==) 연산자를 사용할 때 동등하지 않다고 판단된다.

let arr1 = [1, 2, 3];
let arr2 = [1, 2, 3];
console.log(arr1 === arr2); // false

 

1. JSON 문자열 변환으로 비교

배열을 JSON 문자열로 변환하여 비교하는 방법이다. 배열의 요소와 순서가 같아야 동등하다고 판단되며 중첩 배열도 비교할 수 있다.

let arr1 = [1, 2, 3];
let arr2 = [1, 2, 3];
console.log(JSON.stringify(arr1) === JSON.stringify(arr2)); // true

 

2. 재귀함수를 이용한 비교

Array.prototype.every() 메서드를 사용해 각 요소를 개별적으로 비교하는 방법이다. 배열의 길이가 같고 각 요소가 동일할 때 동등하다고 판단한다.

function arraysEqual(arr1, arr2) {
  if (arr1.length !== arr2.length) return false;
  return arr1.every((val, index) => val === arr2[index]);
}

let arr1 = [1, 2, 3];
let arr2 = [1, 2, 3];
console.log(arraysEqual(arr1, arr2)); // true

 

 

위 방법 외에도 여러가지 방법이 존재한다. 자바스크립트에서 제공하는 메서드를 잘 조합해서 사용한다면 여러가지 방법이 떠오를 것이다.

 

 

 

728x90

'Frontend > JavaScript' 카테고리의 다른 글

[JavaScript] 문자열 역순으로 뒤집기  (0) 2024.11.08
JS 1급 함수 - 특징과 예시  (2) 2024.10.30
JS 스코프 개념  (0) 2024.09.11
JS Promise란?  (0) 2024.09.09
JS Calllback 함수란?  (0) 2024.09.09