두 값이 같은지 깊게 견줍니다. 객체, 배열, 날짜처럼 복잡한 타입도 다룹니다.
| 인자 |
설명 |
타입 |
boolean |
두 값이 같은지 여부 |
boolean |
| 매개변수 |
설명 |
타입 |
기본값 |
value |
견줄 첫째 값 |
any |
필수 |
other |
견줄 둘째 값 |
any |
필수 |
import { isEqual } from 'ranuts';
console.log(isEqual(1, 1)); // true
console.log(isEqual(1, 2)); // false
console.log(isEqual('hello', 'hello')); // true
import { isEqual } from 'ranuts';
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { a: 1, b: { c: 2 } };
const obj3 = { a: 1, b: { c: 3 } };
console.log(isEqual(obj1, obj2)); // true
console.log(isEqual(obj1, obj3)); // false
import { isEqual } from 'ranuts';
const arr1 = [1, 2, { a: 3 }];
const arr2 = [1, 2, { a: 3 }];
const arr3 = [1, 2, { a: 4 }];
console.log(isEqual(arr1, arr2)); // true
console.log(isEqual(arr1, arr3)); // false
import { isEqual } from 'ranuts';
const date1 = new Date('2023-01-01');
const date2 = new Date('2023-01-01');
const date3 = new Date('2023-01-02');
console.log(isEqual(date1, date2)); // true
console.log(isEqual(date1, date3)); // false
import { isEqual } from 'ranuts';
const obj1 = { a: 1 };
obj1.self = obj1;
const obj2 = { a: 1 };
obj2.self = obj2;
console.log(isEqual(obj1, obj2)); // true (순환 참조도 다룹니다)
- 깊은 비교: 객체와 배열의 모든 속성을 재귀로 견줍니다.
- 순환 참조: 순환 참조도 제대로 다룹니다.
- 타입 확인: 값의 타입도 보므로 타입이 다르면
false를 반환합니다.
- 성능: 객체나 배열이 크면 깊은 비교가 느려질 수 있습니다.