arr.reduce(callback[, initialValue])
초기값을 전달하지 않은 경우
const arr = [1,2,3,4,5]
const add = arr.reduce( ( acc, cur, idx, src) => {
console.log('---------')
console.log('acc:', acc)
console.log('cur:', cur)
console.log('idx:', idx)
console.log('src:', src)
return
})
아래의 결과를 보면 초기값을 전달하지 않았기 때문에 acc에 배열의 첫번째 요소가 할당이 되었고, cur에는 배열의 두번째 요소가 할당이 된 것을 확인할 수 있다.
두번째 부터 acc에 undefined가 할당이 되는 이유는 acc에는 콜백함수가 리턴하는 값이 누적되는데, 현재 아무것도 리턴하고 있지 않기 때문에 두번째 부터 undefined가 할당이 되는 것이다.
초기값을 전달 한 경우
const arr = [1,2,3,4,5]
const add = arr.reduce( ( acc, cur, idx, src) => {
console.log('---------')
console.log('acc:', acc)
console.log('cur:', cur)
console.log('idx:', idx)
console.log('src:', src)
return acc
},0)
초기값을 전달하지 않았을 경우와 했을 경우의 차이
그러면 reduce메서드는 언제 사용 하면 좋을까??
const arr = [1,2,3,4,5]
const add = arr.reduce( ( acc, cur, idx, src) => {
console.log('---------')
console.log('acc:', acc)
console.log('cur:', cur)
return acc + cur
},0)
console.log(add)