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
속성에 따라 그룹화하였습니다. 결과로 나온 객체는 Male
과 Female
이라는 키를 가지며, 각각 해당하는 사용자 객체들을 값으로 가지고 있습니다.
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의 다른 유용한 함수들도 함께 확인해보시기 바랍니다.
참조: