[javascript] Lodash의 데이터 비교 함수들과 사용 예제

Lodash는 JavaScript의 유용한 유틸리티 라이브러리로서, 데이터 비교에 관련된 다양한 함수들을 제공합니다. 이번 포스트에서는 Lodash의 몇 가지 데이터 비교 함수들과 간단한 사용 예제를 살펴보겠습니다.

1. isEqual 함수

const object1 = { 'a': 1 };
const object2 = { 'a': 1 };

console.log(_.isEqual(object1, object2)); // true

isEqual 함수는 두 개의 객체나 값이 동등한지 비교합니다. 위 예제에서는 object1object2가 동일한 속성과 값을 가지고 있으므로 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를 반환하는 비교자 함수를 사용하여 array1array2를 비교합니다.

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인 경우에만 동일하다고 판단합니다. 따라서 object1object2는 동등하다고 간주되며 true가 출력됩니다.

결론

Lodash는 유용한 데이터 비교 함수들을 제공하여 JavaScript에서 데이터 비교 작업을 간편하게 수행할 수 있도록 도와줍니다. 이번 포스트에서는 isEqual, isEqualWith, isMatch 함수를 살펴보았으며, 각 함수의 사용 예제를 알아보았습니다. 더 많은 Lodash 함수와 사용법을 알고 싶다면 Lodash 공식 문서를 참조해보세요.

참고 자료