reduce()는 배열의 각 요소를 순회하며 callback 함수의 실행 값을 누적하여 하나의 결과값을 반환함
arr.reduce(callback[, initalValue])
callback 함수
4가지 인수
1. acc : callback 함수의 반환값을 누적
2. cur : 배열의 현재 요소
3. index(Optional) : 배열의 현재 요소의 인덱스
4. arr(Optional) : 호출한 배열
initialValue(Optional)
최초 callback 함수 실행시 acc 인수에 제공되는 초기값
initialValue 미설정시 초기값을 배열의 첫번째 요소 사용
빈배열에서 initialValue미 설정시 에러 발생
Ex) 가장 간단한 표현
const a = [1, 3, 5, 7, 9];
let result = a.reduce((acc, cur) => { return acc + cur }, 0);
console.log(result); // 25
initialValue 설정 유무
const a = [1, 3, 5, 7, 9];
let result = a.reduce((acc, cur, i, arr) => {
console.log("acc : ", acc, "cur : ", cur, "index : ", i, "arr : ", arr);
return acc + cur;
}, 0); // initialValue 0으로 설정
console.log(result);
/*
acc : 0 cur : 1 index : 0 arr : [ 1, 3, 5, 7, 9 ]
acc : 1 cur : 3 index : 1 arr : [ 1, 3, 5, 7, 9 ]
acc : 4 cur : 5 index : 2 arr : [ 1, 3, 5, 7, 9 ]
acc : 9 cur : 7 index : 3 arr : [ 1, 3, 5, 7, 9 ]
acc : 16 cur : 9 index : 4 arr : [ 1, 3, 5, 7, 9 ]
25
*/
const a = [1, 3, 5, 7, 9];
let result = a.reduce((acc, cur, i, arr) => {
console.log("acc : ", acc, "cur : ", cur, "index : ", i, "arr : ", arr);
return acc + cur;
}); // initialVlue 미설정
console.log(result);
/*
acc : 1 cur : 3 index : 1 arr : [ 1, 3, 5, 7, 9 ]
acc : 4 cur : 5 index : 2 arr : [ 1, 3, 5, 7, 9 ]
acc : 9 cur : 7 index : 3 arr : [ 1, 3, 5, 7, 9 ]
acc : 16 cur : 9 index : 4 arr : [ 1, 3, 5, 7, 9 ]
25
*/
'coding > JS' 카테고리의 다른 글
재귀함수 recursion Function (0) | 2022.12.20 |
---|---|
.prettierrc 설정 (0) | 2022.09.01 |
소수점 반올림 (0) | 2022.08.30 |
supertest 테스트 코드 작성 (0) | 2022.08.11 |
jest 테스트 코드 작성 방법 (0) | 2022.08.11 |