reduce 메서드를 사용하면 속성별로 분류된 작업을 빠르게 구현할 수 있으므로 루프 반복을 사용하는 것보다 효율적입니다. 다음은 간단한 샘플 코드입니다.
const arr = [
{
id: 1, name: 'A' },
{
id: 2, name: 'B' },
{
id: 3, name: 'A' },
{
id: 4, name: 'C' },
{
id: 5, name: 'B' },
];
const result = arr.reduce((acc, item) => {
const key = item.name;
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(item);
return acc;
}, {
});
console.log(result);
/*
{
A: [{ id: 1, name: 'A' }, { id: 3, name: 'A' }],
B: [{ id: 2, name: 'B' }, { id: 5, name: 'B' }],
C: [{ id: 4, name: 'C' }]
}
*/
console.log(Object.entries(result));
이 예제에서는 reduce 메서드를 사용하여 배열을 반복하고, 각 요소의 이름 속성을 키로 사용하고, 키로 명명된 배열에 해당 요소를 추가하고, 마지막으로 속성 값을 키로 하는 객체를 반환합니다.
마지막으로 결과는 Object.entries() 메서드 및 출력을 통해 2차원 배열로 변환됩니다.