lodash find() 정리

JS (TIL & Remind)·2021년 6월 9일
1
post-thumbnail

lodash의 공식 document (https://lodash.com/docs/4.17.15) 에는 데이터의 타입별로 사용할 수 있는 함수에 대한 카테고리가 있다.
그 중 자주 사용되는 카테고리는 다음과 같다.

  • Array 배열에만 사용 가능한 함수
  • Object 객체에만 사용 가능한 함수
  • Collection 배열과 객체 모두 사용 가능한 함수
  • Util 유틸리티 관련 함수

오늘은 Collection 카테고리의 find() 함수에 대해 정리하려고 한다.

find()

조건을 만족하는 Collection 에서 첫번째 요소를 찾아 그 값을 반환하는 함수.

사용법

Collection에서 찾을 데이터의 조건을 각각 인자로 넣어준다.

_.find(Collection(배열|객체), 조건(배열|객체|함수))

예제

다음과 같은 Collection에서 age32인 첫 번째 객체를 찾고자 한다.

const users = [
  { user: 'joy', age: 32 },
  { user: 'rose', age: 41 },
  { user: 'chandler', age: 39 },
  { user: 'js', age: 32 }
]

조건으로 객체를 넣을 경우

_.find(users, { age: 32 })
       
// 결과
// 조건에 해당하는 첫 번째 값을 리턴한다.
// { user: 'joy', age: 32 }

조건으로 배열을 넘겨줄 땐, [key, value] 형태로 넘겨준다.

_.find(users, [age, 32]);
// { user: 'joy', age: 32 }

다음과 같이 조건을 함수로 작성할 수도 있다.

_.find(users, (o) => {
  if (o.age === 32 ) return o;
});

마치며

Javascript ES6 함수에도 find() 함수가 있지만, lodash와 다르게 Array 에서만 사용할 수 있기 때문에, lodashfind()를 활용하면 생산성을 높힐 수 있다.
하지만, 성능 면에서는 비교적 간단한 로직을 처리할 땐 ES6의 find()가 lodash의 find()보다 더 좋다. 따라서, 복잡한 로직을 처리해야 하거나, 상황이 아니라면 ES6의 find()를 사용하는 것이 좋을 것 같다.

profile
노션에 더욱 깔끔하게 정리되어있습니다. (하단 좌측의 홈 모양 아이콘)

0개의 댓글