Lodash는 JavaScript의 유용한 유틸리티 라이브러리로서, 데이터 비교에 관련된 다양한 함수들을 제공합니다. 이번 포스트에서는 Lodash의 몇 가지 데이터 비교 함수들과 간단한 사용 예제를 살펴보겠습니다.
1. isEqual 함수
const object1 = { 'a': 1 };
const object2 = { 'a': 1 };
console.log(_.isEqual(object1, object2)); // true
isEqual
함수는 두 개의 객체나 값이 동등한지 비교합니다. 위 예제에서는 object1
과 object2
가 동일한 속성과 값을 가지고 있으므로 true
가 출력됩니다.
2. isEqualWith 함수
const customizer = (value, other) => {
if (value === 'custom' || other === 'custom') {
return true;
}
};
const array1 = ['custom', 'apple'];
const array2 = ['banana', 'custom'];
console.log(_.isEqualWith(array1, array2, customizer)); // true
isEqualWith
함수는 isEqual
함수와 비슷하지만, 사용자 정의 비교자 함수를 제공할 수 있습니다. 위 예제에서는 “custom”이 포함된 요소가 하나라도 있으면 true
를 반환하는 비교자 함수를 사용하여 array1
과 array2
를 비교합니다.
3. isMatch 함수
const object = { 'a': 1, 'b': 2, 'c': 3 };
const source = { 'a': 1, 'c': 3 };
console.log(_.isMatch(object, source)); // true
isMatch
함수는 첫 번째 객체가 두 번째 객체 요구사항을 만족하는지 확인합니다. 위 예제에서는 object
객체가 source
객체의 모든 요구사항을 만족하므로 true
가 출력됩니다.
4. isEqualWith와 isMatch의 결합 사용 예제
const customizer = (value, other) => {
if (_.isNil(value) && _.isNil(other)) {
return true;
}
};
const object1 = { 'a': null, 'b': 2 };
const object2 = { 'a': undefined, 'b': 2 };
console.log(_.isEqualWith(object1, object2, customizer)); // true
console.log(_.isMatch(object1, object2)); // true
위 예제에서는 isEqualWith
함수와 isMatch
함수를 조합하여 객체의 속성 값이 null
또는 undefined
인 경우에만 동일하다고 판단합니다. 따라서 object1
과 object2
는 동등하다고 간주되며 true
가 출력됩니다.
결론
Lodash는 유용한 데이터 비교 함수들을 제공하여 JavaScript에서 데이터 비교 작업을 간편하게 수행할 수 있도록 도와줍니다. 이번 포스트에서는 isEqual
, isEqualWith
, isMatch
함수를 살펴보았으며, 각 함수의 사용 예제를 알아보았습니다. 더 많은 Lodash 함수와 사용법을 알고 싶다면 Lodash 공식 문서를 참조해보세요.