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}

다른 메서드들과 마찬가지로 얕은 복사를 하여 반환 해주기 때문에 구조분해할당 같은걸 추가적으로 굳이 사용할 필요는 없다.


참고: https://lodash.com/docs/4.17.15#omit

 

Lodash Documentation

_(value) source Creates a lodash object which wraps value to enable implicit method chain sequences. Methods that operate on and return arrays, collections, and functions can be chained together. Methods that retrieve a single value or may return a primiti

lodash.com

반응형