숫자나 문자열을 비교할때는 == 이나 === 연산자를 사용하면 되지만 배열이나 객체를 비교할때는 사용이 불가능함
배열이나 객체는 reference 타입으로 값이 비교되는 것이 아닌 주소값이 비교되기 때문에 false가 뜸
1. JSON.stringify
간단한 비교
JSON.stringify를 통해 문자열로 변경해준 뒤 배열을 비교함
const arr1 = [1,2,3,4,5]
const arr2 = [1,2,3,4,5]
return JSON.stringify(arr1) === JSON.stringify(arr2) //true
2. every 사용
.every()는 배열의 모든 원소가 조건에 맞는지 검사하는 메소드
모든 원소가 조건을 만족하면 true, 하나라도 만족하지 않으면 false를 반환
원소가 없는 빈 배열은 조건을 만족하지 않는 원소가 없으므로 true를 반환
const arr1 = [1,2,3,4,5]
const arr2 = [1,2,3,4,5]
return arr1.every((x,i) => x == arr2[i]) //true
const arr1 = [1,2,3,4,5]
const arr2 = [1,2,3,4,5]
const bool = arr1.every((x,i) => x == arr2[i])
return arr1.length === arr2.length && bool //true'JS' 카테고리의 다른 글
| JS, BigInt (1) | 2023.10.19 |
|---|---|
| JS, 모든 문자열 치환(replace, replaceAll) (1) | 2023.10.17 |
| JS, 내장함수를 이용한 숫자/날짜의 현지화 (0) | 2023.07.08 |
| JS, 배열의 조건 만족 (0) | 2023.07.04 |
| JS, 정규표현식(RegExp) (0) | 2023.06.21 |
댓글