forEach()는 주어진 함수(callback)를 실행 후 하나의 결과값을 반환한다.
초기값 지정, 지정하지 않으면 배열의 첫번째요소를 사용한다.
const arr = [1, 2, 3];
const result = arr.reduce((acc, cur, i, arr) => {
console.log(i, arr);
return acc + cur;
}, 0);
console.log(result);
// 결과
0 [ 1, 2, 3 ]
1 [ 1, 2, 3 ]
2 [ 1, 2, 3 ]
6
const arr = [2, 4, 6, 8, 10];
const result = arr.reduce((acc, cur) => {
if (cur >= 5) acc += cur;
return acc;
}, 0);
console.log(result);
// 결과
24
const arr = ["a", "a", "a", "b", "c", "c", "b", "a"];
const result = arr.reduce((acc, cur) => {
if (acc[cur]) acc[cur] += 1;
else acc[cur] = 1;
return acc;
}, {});
console.log(result);
// 결과
{ a: 4, b: 2, c: 2 }
reduce는 배열을 다루기 최고의 함수라서 잘알아두면 좋다!