Reduce함수가 익숙하지 않아서 한번 정리해야겠다.
배열.reduce((누적값, 현잿값, 현잿값인덱스, 요소) => { return 결과 }, 초깃값);
result = oneTwoThree.reduce((acc, cur, i) => {
console.log(acc, cur, i);
return acc + cur;
}, 0);
// 0 1 0
// 1 2 1
// 3 3 2
result; // 6
초깃값을 정해주지 않으면 자동으로 0이된다.
result = oneTwoThree.reduce((acc, cur, i) => {
console.log(acc, cur, i);
return acc + cur;
}); /// 자동으로 초깃값 지정
// 1 2 1
// 3 3 2
result; // 6
result = oneTwoThree.reduce((acc, cur) => {
acc.push(cur % 2 ? '홀수' : '짝수');
return acc;
}, []);
result; // ['홀수', '짝수', '홀수']
result = oneTwoThree.reduce((acc, cur) => {
if (cur % 2) acc.push(cur);
return acc;
}, []);
result; // [1, 3]
const nums = ['one', 'one', 'one', 'one', 'two',
'two', 'two', 'two', 'three', 'three', 'three'];
const result = nums.reduce((acc, cur, i) => {
acc[cur] = (acc[cur] || 0) + 1;
return acc;
}, {});
console.log(result);
/// one : 5, two: 4, three:3
반복되는 모든 것에 reduce를 사용할 수 있다.