[javascript] 객체의 속성을 필터링하는 방법

JavaScript에서 객체의 속성을 필터링하는 것은 매우 유용합니다. 이를 통해 원하는 속성만 남기거나, 특정 조건을 만족하는 속성만 선택할 수 있습니다. 다음은 JavaScript에서 객체의 속성을 필터링하는 몇 가지 방법에 대해 설명합니다.

1. for…in 루프를 이용한 필터링

const originalObject = {
  name: 'Alice',
  age: 30,
  city: 'New York',
  isAdmin: true
};

const filteredObject = {};
for (const key in originalObject) {
  if (key !== 'isAdmin') {
    filteredObject[key] = originalObject[key];
  }
}
console.log(filteredObject);
// 출력: { name: 'Alice', age: 30, city: 'New York' }

2. Object.keys() 및 reduce()를 이용한 필터링

const originalObject = {
  name: 'Alice',
  age: 30,
  city: 'New York',
  isAdmin: true
};

const filteredObject = Object.keys(originalObject)
  .filter(key => key !== 'isAdmin')
  .reduce((obj, key) => {
    obj[key] = originalObject[key];
    return obj;
  }, {});
console.log(filteredObject);
// 출력: { name: 'Alice', age: 30, city: 'New York' }

3. Lodash 라이브러리의 pick() 함수를 이용한 필터링

Lodash는 JavaScript 유틸리티 라이브러리로, 객체 조작을 위한 다양한 함수를 제공합니다. pick() 함수를 사용하면 객체에서 원하는 속성만 선택할 수 있습니다.

const _ = require('lodash');

const originalObject = {
  name: 'Alice',
  age: 30,
  city: 'New York',
  isAdmin: true
};

const filteredObject = _.pick(originalObject, ['name', 'age', 'city']);
console.log(filteredObject);
// 출력: { name: 'Alice', age: 30, city: 'New York' }

결론

JavaScript에서 객체의 속성을 필터링하는 방법은 다양합니다. for...in 루프, Object.keys()reduce()를 사용한 방법, 그리고 Lodash 라이브러리의 pick() 함수를 활용하는 방법 등이 있습니다. 각 상황에 맞게 가장 효율적인 방법을 선택하여 객체의 속성을 필터링할 수 있습니다.