Array.prototype.reduce()
reduce. 배열의 각 요소에 대해 주어진 리듀서 함수를 실행하고, 하나의 결과값을 반환
빈 요소를 제외하고 배열 내에 존재하는 각 요소에 대해 callback 함수를 한 번씩 실행하는데, 콜백 함수는 다음의 네 인수를 받는다
콜백의 최초 호출 때 acc와 cur은 다음 두 가지 값 중 하나를 가질 수 있다.
acc는 초기값과 같고 cur은 배열의 첫 번째 값과 같다.
초기값을 제공하지 않았다면 acc는 배열의 첫번째 값과 같고,
cur은 두번째와 같다.
let sum = [0, 1, 2, 3]
sum.reduce( (acc, cur) => {
return accumulator + currentValue;
}, 0);
// sum is 6
let initialValue = 0;
let sum = [
{x: 1},
{x:2},
{x:3}
]
sum.reduce((acc, cur) => {
accumulator + currentValue.x,initialValue
});
console.log(sum) // logs 6
let flattened = [[0, 1], [2, 3], [4, 5]]
flattened.reduce( ( acc, cur ) => {
accumulator.concat(currentValue)
}, []);