간단한 사용 예
const num = [10, 20, 30, 40, 50];
const value = num.reduce((a, b) => {
return a + b;
});
console.log(value); // 150
상세 설명 및 예시
reduce 함수는 배열의 각 요소에 대해 함수를 실행하고 하나의 결과값을 반환합니다.
arr.reduce(callback[, initialValue])
callback은 총 네 가지 인수를 사용할 수 있으며 두 가지의 필수 옵션과 두 가지의 선택 옵션이 존재합니다.
인수 이름 | 설명 | 필수 |
accumulator | callback의 반환값을 저장 initalValue를 설정했을 경우 최초 호출 시 intalValue 값을 제공 initalValue를 설정하지 않았을 경우 초기 값은 배열의 첫 번째 요소 |
✔️ |
currentValue | 처리할 현재 요소 intalValue 값을 제공하는 경우 초기 값은 배열의 첫 번째 요소 intalValue 값을 제공하지 않았을 경우 초기 값은 배열의 두 번째 요소 |
✔️ |
currentIndex | 처리할 현재 요소의 인덱스 | ❌ |
array | reduce()를 호출한 배열 | ❌ |
initalValue은 선택 옵션입니다.
인수 이름 | 설명 | 필수 |
initalValue | callback의 최초 호출 시 함수의 첫 번째 인수(accumulator)에 제공하는 값 initalValue를 제공하지 않은 경우 함수의 첫 번째 인수는 배열의 첫 번째 요소를 사용 |
❌ |
initalValue를 설정하지 않은 경우
const num = [10, 20, 30, 40, 50];
const value = num.reduce((acc, cur, index, arr) => {
console.log(acc);
console.log(cur);
console.log(index);
console.log(arr);
return acc + cur;
});
console.log(value); // 150
순서 | acc | cur | index | arr | acc + cur |
1 | 10 | 20 | 1 | [10, 20, 30, 40, 50] | 30 |
2 | 30 | 30 | 2 | 60 | |
3 | 60 | 40 | 3 | 100 | |
4 | 100 | 50 | 4 | 150 |
initalValue를 설정한 경우
initalValue를 100으로 설정하겠습니다.
const num = [10, 20, 30, 40, 50];
const value = num.reduce((acc, cur, index, arr) => {
console.log(acc);
console.log(cur);
console.log(index);
console.log(arr);
return acc + cur;
}, 100);
console.log(value); // 250
순서 | acc | cur | index | arr | acc + cur |
1 | 100 | 10 | 0 | [10, 20, 30, 40, 50] |
110 |
2 | 110 | 20 | 1 | 130 | |
3 | 130 | 30 | 2 | 160 | |
4 | 160 | 40 | 3 | 200 | |
5 | 200 | 50 | 4 | 250 |
반응형
'JavaScript' 카테고리의 다른 글
mongoose에서 화살표 함수(arrow function)이 동작하지 않는 이유 (0) | 2022.01.16 |
---|---|
[JavaScript] reverse 함수 (0) | 2021.07.11 |
[JavaScript] setInterval, clearInterval 사용법 (0) | 2021.07.02 |
yield 사용법 - 생성기(generator) 그리고 반복기와 반복기 제공자 (0) | 2021.06.21 |
모달창에서 execCommand('copy') 실행 안 될 때 (0) | 2020.12.10 |