[javascript] 객체의 속성 값 비교하기

자바스크립트에서는 객체의 속성 값을 비교하는 여러 가지 방법이 있습니다. 객체의 속성 값이 동일한지를 확인하는 방법에 대해 알아보겠습니다.

1. 일반적인 방법

가장 간단한 방법은 === 연산자를 사용하여 두 개의 속성 값을 직접 비교하는 것입니다. 두 개의 속성 값이 동일하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

const obj1 = {
  name: "apple",
  color: "red"
};

const obj2 = {
  name: "apple",
  color: "red"
};

console.log(obj1.name === obj2.name);  // true
console.log(obj1.color === obj2.color);  // true

2. JSON.stringify() 사용하기

JSON.stringify() 메서드는 객체를 JSON 문자열로 변환해주는 역할을 합니다. 따라서 두 개의 객체를 JSON 문자열로 변환한 후, 이를 비교하면 각 속성 값이 일치하는지 확인할 수 있습니다.

const obj1 = {
  name: "apple",
  color: "red"
};

const obj2 = {
  name: "apple",
  color: "red"
};

console.log(JSON.stringify(obj1) === JSON.stringify(obj2));  // true

3. lodash의 isEqual() 함수 사용하기

lodash는 유용한 자바스크립트 라이브러리로, isEqual() 함수를 제공합니다. 이 함수는 두 개의 값을 깊이 비교하여 동일한지를 확인합니다. 객체의 속성 값이 단순한 타입이라면 앞의 두 가지 방법이 적합하지만, 객체 안에 또 다른 객체가 포함되어 있는 경우에는 isEqual() 함수를 사용하는 것이 편리합니다.

const obj1 = {
  name: "apple",
  color: "red",
  taste: {
    sweet: true,
    sour: false
  }
};

const obj2 = {
  name: "apple",
  color: "red",
  taste: {
    sweet: true,
    sour: false
  }
};

console.log(_.isEqual(obj1, obj2));  // true

요약

자바스크립트에서 객체의 속성 값을 비교하는 방법은 다양합니다. 가장 간단한 방법은 === 연산자를 사용하여 직접 비교하는 것이며, JSON.stringify() 메서드를 사용하거나 lodash의 isEqual() 함수를 활용하는 것도 유용한 방법입니다. 적절한 방법을 선택하여 객체의 속성 값을 비교하면 원하는 결과를 얻을 수 있습니다.

참고 자료