Array.prototype.reduce()
Array.reduce((acc, cur, index, arr) => (), initialValue)
배열의 각 요소에 대해 리듀서 함수를 실행하고, 하나의 결과값을 반환한다.
리듀서 함수는 네개의 매개변수를 가질 수 있다.
- acc : 값이 누적되는 변수. 최종적으로 리턴되는 값
- cur : 배열의 현재 요소
- index : 현재 요소의 인덱스
- arr : 원본 배열
initialValue
를 지정하면 acc의 초기값을 정할 수 있다.
만약 initialValue
가 없다면 초기값은 배열의 0번째 값이다.
✤ 배열의 모든 값 더하기
const arr = [1, 2, 3, 4, 5]
const sum = arr.reduce((a, b) => a + b)
✤ 두 배열의 곱 모두 더하기
const arrA = [1, 2, 3, 4, 5]
const arrB = [6, 7, 8, 9, 10]
const sum = arr.reduce((a, b, i) => (a += b * arrB[i]), 0)