Array.reduce((누적값, 현재값, 인덱스, 요소) => {return result}, 초기값);
사족이 필요없을 것 같다. 아래의 예시코드로 Easy하게 살펴보자 😆
const number = [1, -1, 2, 3];
let sum = 0;
for (let n of numbers)
sum +n;
console.log(sum); //5
const number = [1, -1, 2, 3];
// acc = 0, cur = 1 => acc = 1
// acc = 1, cur = -1 => acc = 0
// acc = 0, cur = 2 => acc = 2
// acc = 2, cur = 3 => acc = 5
const sum = number.reduce((acc, cur) => {
return acc + cur;
}, 0);
console.log(sum) //5
const number = [1, -1, 2, 3];
// acc = 1, cur = -1 => acc = 0
// acc = 0, cur = 2 => acc = 2
// acc = 2, cur = 3 => acc = 5
const sum = number.reduce((acc, cur) => acc + cur);
console.log(sum) //5
초기값에 배열은 선언해준다면 이런식으로 새로운 배열을 return 할수도 있다!
const number = [1, 2, 3, 4, 5, 6];
const oddEven = number.reduce((acc, cur) => {
acc.push(cur % 2 ? '홀수' : '짝수')
return acc;
},[]);
console.log(oddEven) //['홀수', '짝수', '홀수', '짝수', '홀수']
위의 상황을 응용한다면 조건부(filter)의 결과를 return 할 수 있다!
const number = [1, 2, 3, 4, 5, 6];
const oddEven = number.reduce((acc, cur) => {
if(cur % 2){
acc.push(cur)
}
return acc;
},[]);
console.log(oddEven)