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 |