Library & Framework/Lodash
[Lodash] 객체에서 특정 프로퍼티 제외하기 (ft. omit)
썸머워즈
2023. 6. 13. 19:54
반응형
omit
lodash에서 제공하고 있는 omit() 메서드의 경우 객체에서 특정 프로퍼티를 제외할 때 사용되는 메서드이다.
omit이라는 명칭은 다른 곳에서도 흔하게 볼 수 있고 기능 또한 비슷하기 때문에 한 번 알아두면 이런 기능이구나 하고 쉽게 이해하고 갈 수 있다. 특히 typescript의 유틸리티 타입에서도 흔하게 볼 수 있다.
// _.omit(object, [paths: string|string[]])
const object = { 'a': 1, 'b': '2', 'c': 3 };
console.log(_.omit(object, ['a', 'c']));
//{ 'b': '2' }
특정 객체를 기준으로 제외하고 싶은 프로퍼티의 키 배열을 넣어두면 제외된 나머지 객체가 반환되는 형식이다.
omitBy
omitBy() 메서드는 특정 프로퍼티를 제외하는 건 동일하나 특정 조건에 맞는 프로퍼티만 제외할 때 사용되는 메서드이다.
// _.omitBy(object, [predicate=_.identity])
const object = { 'a': 1, 'b': '2', 'c': 3 };
console.log(_.omitBy(object, _.isNumber))
// { 'b': '2' }
두 번쨰 매개변수로 함수를 집어넣어 사용할 수 있는데 위 예제에서 보여주는 건 lodash의 isNumber 메서드를 사용한 것이다. 그래서 반환값으로 숫자값이 아닌 녀석이 나왔다.
그리고 추가적으로 조건을 줄 수 있다.
const object = { 'a': 1, 'b': '2', 'c': 3 };
const omit = _.omitBy(object, (value, key) => {
return value === 1
});
console.log(omit) // {b: "2", c: 3}
다른 메서드들과 마찬가지로 얕은 복사를 하여 반환 해주기 때문에 구조분해할당 같은걸 추가적으로 굳이 사용할 필요는 없다.
반응형