본문 바로가기
javascript

reduce로 객체 같은 값끼리 분류

by hjcode 2021. 10. 26.
const myArray = [
    { group: "one", color: "red" },
    { group: "two", color: "blue" },
    { group: "one", color: "green" },
    { group: "one", color: "black" }
];

// 배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초깃값);
const groupValues = myArray.reduce((acc, current) => {
    acc[current.group] = acc[current.group] || [];
    acc[current.group].push(current.color);
    return acc;
}, {});

// 위에서 만든 객체를 key로 돌려서 새로운 객체 return
const groups = Object.keys(groupValues).map((key) => {
    return { group: key, color: groupValues[key] };
});

 

아래와 같은 값으로 변환된걸 확인할 수 있습니다.

반응형

'javascript' 카테고리의 다른 글

Broadcast Channel API  (0) 2022.03.03
MutationObserver로 DOM 변화 감지  (0) 2021.12.07
querySelector로 index 조회  (0) 2021.08.03
for loop에서 async/await  (0) 2021.07.05
배열 중복 제거  (0) 2021.06.30