groupby lodash

agnusdei·2023년 9월 24일
0

물론, 그룹화 기능을 가진 groupBy 함수의 사용 예시를 다양한 데이터와 함께 보여드리겠습니다. 아래의 예시에서는 간단한 데이터 배열을 사용하여 groupBy 함수를 설명하겠습니다.

예시 1: 동일한 그룹화 키(속성)를 가진 요소들을 그룹화하기

const lodash = require('lodash');

const data = [
  { id: 1, category: 'A', value: 10 },
  { id: 2, category: 'B', value: 20 },
  { id: 3, category: 'A', value: 30 },
  { id: 4, category: 'C', value: 40 },
  { id: 5, category: 'B', value: 50 },
];

const groupedData = lodash.groupBy(data, 'category');

console.log(groupedData);

위의 코드에서 groupBy 함수는 category 속성을 기준으로 데이터를 그룹화합니다. 결과는 다음과 같이 나타납니다:

{
  A: [
    { id: 1, category: 'A', value: 10 },
    { id: 3, category: 'A', value: 30 }
  ],
  B: [
    { id: 2, category: 'B', value: 20 },
    { id: 5, category: 'B', value: 50 }
  ],
  C: [
    { id: 4, category: 'C', value: 40 }
  ]
}

예시 2: 사용자를 나이대로 그룹화하기

const lodash = require('lodash');

const users = [
  { id: 1, name: 'Alice', age: 25 },
  { id: 2, name: 'Bob', age: 30 },
  { id: 3, name: 'Charlie', age: 25 },
  { id: 4, name: 'David', age: 35 },
];

const groupedUsers = lodash.groupBy(users, (user) => {
  if (user.age <= 25) {
    return 'Under 25';
  } else if (user.age <= 30) {
    return '26-30';
  } else {
    return '31 and above';
  }
});

console.log(groupedUsers);

위의 코드에서 groupBy 함수는 사용자를 나이대에 따라 그룹화합니다. 결과는 다음과 같이 나타납니다:

{
  'Under 25': [
    { id: 1, name: 'Alice', age: 25 },
    { id: 3, name: 'Charlie', age: 25 }
  ],
  '26-30': [
    { id: 2, name: 'Bob', age: 30 }
  ],
  '31 and above': [
    { id: 4, name: 'David', age: 35 }
  ]
}

이러한 예시를 통해 groupBy 함수가 어떻게 데이터를 그룹화하고 원하는 기준에 따라 데이터를 정리하는 데에 유용하게 사용될 수 있는지 이해할 수 있을 것입니다. 함수의 콜백 함수를 통해 그룹화 기준을 유동적으로 정의할 수 있으므로 다양한 데이터 정리 작업에 활용할 수 있습니다.

0개의 댓글