javascript reduce

국물빌런·2021년 2월 8일
0
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;

// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10

// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15

실제 reduce의 인자는 2개이다. 하나는 리듀서라고 부르는 누산기연산을 하는 callback함수이고

두번째 인자는 누산기의 초기값이다.

callback

배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수를 받습니다.

accumulator누산기accmulator는 콜백의 반환값을 누적합니다. 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값입니다.currentValue처리할 현재 요소.currentIndex Optional처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작합니다.array Optionalreduce()를 호출한 배열.

initialValue Optional

callback의 최초 호출에서 첫 번째 인수에 제공하는 값. 초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용합니다. 빈 배열에서 초기값 없이 reduce()를 호출하면 오류가 발생합니다.

accumulator의 최초값은 초기값이 없으면 src배열의 첫번째 값이되며 currentValue는 두번째 값이 됨

초기값을 인자로 주면 accumulator는 초기값으로 시작하며 currentValue는 배열의 첫번째 값이 됨

즉 초기값이 있을때와 없을때는 리턴 횟수가 다름!

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

profile
국물을 달라

0개의 댓글