[javascript] Lodash의 데이터 필터링 함수들과 사용 예제

Lodash는 자바스크립트의 유용한 함수들을 제공하는 유틸리티 라이브러리입니다. 데이터를 필터링하는 것은 많은 개발자에게 일상적인 작업이며 Lodash는 이를 간단하게 처리할 수 있는 다양한 함수들을 제공합니다. 이번 블로그 포스트에서는 Lodash의 몇 가지 데이터 필터링 함수와 간단한 사용 예제를 살펴보겠습니다.

1. filter 함수

filter 함수는 배열을 순회하면서 주어진 조건을 만족하는 요소들로 이루어진 새로운 배열을 반환합니다.

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const evenNumbers = _.filter(numbers, (num) => num % 2 === 0);

console.log(evenNumbers);
// 출력: [2, 4, 6, 8, 10]

위 예제에서는 numbers 배열에서 짝수인 숫자들만을 필터링하여 evenNumbers 배열에 저장합니다.

2. reject 함수

reject 함수는 filter 함수와 반대로, 주어진 조건을 만족하지 않는 요소들로 이루어진 새로운 배열을 반환합니다.

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const oddNumbers = _.reject(numbers, (num) => num % 2 === 0);

console.log(oddNumbers);
// 출력: [1, 3, 5, 7, 9]

위 예제에서는 numbers 배열에서 홀수인 숫자들만을 필터링하여 oddNumbers 배열에 저장합니다.

3. find 함수

find 함수는 배열을 순회하면서 주어진 조건을 만족하는 첫 번째 요소를 반환합니다.

const users = [
  { id: 1, name: "John" },
  { id: 2, name: "Jane" },
  { id: 3, name: "Bob" },
];

const user = _.find(users, { name: "Bob" });

console.log(user);
// 출력: { id: 3, name: "Bob" }

위 예제에서는 users 배열에서 name 속성이 “Bob”인 첫 번째 사용자를 찾아 반환합니다.

4. groupBy 함수

groupBy 함수는 배열을 주어진 조건에 따라 그룹화하여 객체로 반환합니다.

const cities = [
  { name: "Seoul", country: "South Korea" },
  { name: "Tokyo", country: "Japan" },
  { name: "Beijing", country: "China" },
  { name: "Bangkok", country: "Thailand" },
];

const countries = _.groupBy(cities, "country");

console.log(countries);
/*
출력:
{
  "South Korea": [
    { name: "Seoul", country: "South Korea" }
  ],
  "Japan": [
    { name: "Tokyo", country: "Japan" }
  ],
  "China": [
    { name: "Beijing", country: "China" }
  ],
  "Thailand": [
    { name: "Bangkok", country: "Thailand" }
  ]
}
*/

위 예제에서는 cities 배열을 country 속성에 따라 그룹화하여 countries 객체로 반환합니다.

이렇듯 Lodash의 데이터 필터링 함수들은 간편하고 효율적인 방법으로 데이터를 처리할 수 있도록 도와줍니다.

참고 자료