07-10. 배열내장 함수(reduce)2

reduce는 잘 알아두면 정말 유용한 내장함수입니다. reduce를 이용해서 객체를 반해보자!!

리듀스 함수는 네 개의 인자를 가집니다.

  1. 누적된 원소 accumulator (acc)

  2. 현재 값 (cur)

  3. 현재 인덱스 (idx)

  4. 원본 배열 (src)

리듀서 함수의 반환 값은 누적된 원소에 할당되고, 누적된 원소는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.

const alphabets = ['a', 'a', 'a', 'b', 'c', 'c', 'd', 'e'];
const counts = alphabets.reduce((acc, cur) => {
    if(acc[cur]) {
        acc[cur] += 1;
    } else {
        acc[cur] = 1;
    }
    return acc;
}, {}) //({}은 초기 accumulator가 됩니다. 즉 초기세팅으로 객체를 만든것입니다.)

console.log(counts);
// 결과)
{a: 3, b: 1, c: 2, d: 1, e: 1}
a: 3
b: 1
c: 2
d: 1
e: 1
__proto__: Object

Last updated