반응형
pick
lodash에서 제공하고 있는 pick() 메서드의 경우 객체에서 특정 프로퍼티만 사용하고자 할 때 사용된다.
일반적으로 어디서든 omit을 소개할때 같이 소개되는 메서드이기도 하며, omit과 마찬가지로 다른 곳에서도 흔하게 볼 수 있고 기능 또한 비슷하기 때문에 한 번 알아두면 이런 기능이구나 하고 쉽게 이해하고 갈 수 있다.
// _.pick(object, [paths])
const object = { 'a': 1, 'b': '2', 'c': 3 };
const result = _.pick(object, ['a', 'c']);
console.log(result)
// { 'a': 1, 'c': 3 }
pickBy
pickBy() 메서드는 특정 프로퍼티만 뽑아 사용하는것은 동일하나 특정 조건에 맞는 프로퍼티만 사용하고자할 때 사용되는 메서드이다.
// _.pickBy(object, [predicate=_.identity])
const object = { 'a': 1, 'b': '2', 'c': 0 };
const result = _.pickBy(object, _.isNumber);
console.log(result)
// { 'a': 1, 'c': 0 }
const _result = _.pickBy(object)
// { 'a': 1, 'b': '2' }
두 번쨰 매개변수로 함수를 집어넣어 사용할 수 있는데 위 예제에서 보여주는 건 lodash의 isNumber 메서드를 사용한 것이다. 그래서 반환값으로 숫자값로 이루어진 값들만 추출된 것이다.
그리고 재밌게도 두 번째 매개변수를 "생략"하게 되면 value 값이 false로 간주되는 것들은 생략된다.
추가적으로 여러 조건 역시 줄 수 있다.
const object = { 'a': 1, 'b': '2', 'c': 3 };
const result = _.pickBy(object, (value, key) => value === 1 || key === 'c');
console.log(result)
// { 'a': 1, 'c': 3 }
반응형
댓글