[javascript] Lodash의 데이터 그룹화 함수들과 사용 예제

Lodash는 JavaScript에서 데이터를 다루는 작업을 쉽게 해주는 유용한 라이브러리입니다. 그 중에서도 데이터를 그룹화하는 함수들은 많은 도움이 될 수 있습니다. 이번 블로그 포스트에서는 Lodash의 몇 가지 데이터 그룹화 함수와 그 사용 예제를 소개하겠습니다.

1. groupBy

groupBy 함수는 배열을 주어진 조건에 따라 그룹화하는 역할을 합니다. 아래는 groupBy 함수의 사용 예제입니다.

const users = [
  { name: 'John', gender: 'Male', age: 28 },
  { name: 'Jane', gender: 'Female', age: 32 },
  { name: 'Alex', gender: 'Male', age: 25 },
  { name: 'Emily', gender: 'Female', age: 29 }
];

const groupedByGender = _.groupBy(users, 'gender');
console.log(groupedByGender);
// 결과: { Male: [ { name: 'John', gender: 'Male', age: 28 }, { name: 'Alex', gender: 'Male', age: 25 } ], Female: [ { name: 'Jane', gender: 'Female', age: 32 }, { name: 'Emily', gender: 'Female', age: 29 } ] }

위 예제에서는 users 배열을 gender 속성에 따라 그룹화하였습니다. 결과로 나온 객체는 MaleFemale이라는 키를 가지며, 각각 해당하는 사용자 객체들을 값으로 가지고 있습니다.

2. partition

partition 함수는 주어진 배열을 조건에 따라 두 개의 그룹으로 분할합니다. 예를 들어, 주어진 배열에서 짝수와 홀수를 분리하고 싶을 때 사용할 수 있습니다. 아래는 partition 함수의 사용 예제입니다.

const numbers = [1, 2, 3, 4, 5, 6];

const [even, odd] = _.partition(numbers, (num) => num % 2 === 0);
console.log(even);
console.log(odd);
// 결과: [2, 4, 6], [1, 3, 5]

위 예제에서는 numbers 배열을 홀수와 짝수로 분할하였습니다. partition 함수의 두 번째 인자로 전달된 함수는 각 요소가 속하는 그룹을 결정하는 조건을 정의합니다.

3. keyBy

keyBy 함수는 배열을 주어진 키에 따라 객체로 변환합니다. 아래는 keyBy 함수의 사용 예제입니다.

const books = [
  { id: 1, title: 'JavaScript: The Good Parts', author: 'Douglas Crockford' },
  { id: 2, title: 'Clean Code: A Handbook of Agile Software Craftsmanship', author: 'Robert C. Martin' },
  { id: 3, title: 'Eloquent JavaScript: A Modern Introduction to Programming', author: 'Marijn Haverbeke' }
];

const booksById = _.keyBy(books, 'id');
console.log(booksById);
// 결과: { '1': { id: 1, title: 'JavaScript: The Good Parts', author: 'Douglas Crockford' }, '2': { id: 2, title: 'Clean Code: A Handbook of Agile Software Craftsmanship', author: 'Robert C. Martin' }, '3': { id: 3, title: 'Eloquent JavaScript: A Modern Introduction to Programming', author: 'Marijn Haverbeke' } }

위 예제에서는 books 배열을 id 속성을 기준으로 객체로 변환하였습니다. 결과로 나온 객체는 각 요소의 id를 키로 하고 해당하는 요소를 값으로 가지고 있습니다.

결론

이번 포스트에서는 Lodash의 groupBy, partition, keyBy 함수를 사용하여 데이터를 그룹화하는 방법에 대해 알아보았습니다. 이러한 함수들은 데이터 처리 작업을 더 효율적으로 수행할 수 있도록 도와줍니다. Lodash의 다른 유용한 함수들도 함께 확인해보시기 바랍니다.

참조: