Javascript

고차함수 - reduce()

자라나라나무나무나 2022. 5. 27. 15:27
요소 별 함수 수행 누적 결과값 반환 : Array.reduce(function(accumulator, item, index, array){})
accumulator : 이전 함수 결과가 누적(initial로 초기값 설정 가능)
item : 배열요소 
index : 배열 위치
array : 배열
let nums = [1, 2, 3, 4, 5];

let call_count = 0;

console.log("result\tvalue\tindex");
let sum = nums.reduce(function(accumulator, item, index, array) {
    console.log(accumulator, "\t\t", item, "\t\t", index);
    call_count++;
    return accumulator + item;
});

console.log(call_count);
console.log(sum);

array는 그대로 넘어온다. (한개 밖에 없기 때문)

result가 1인 이유는 초기값을 설정하지 않으면 accumulator는 0번째의 값이 들어온다.

그렇기 때문에  result값이 1이 되었다.


초기값을 설정한 경우

let nums = [1, 2, 3, 4, 5];

let call_count = 0;

console.log("result\tvalue\tindex");
let sum = nums.reduce(function(accumulator, item, index, array) {
    console.log(accumulator, "\t\t", item, "\t\t", index);
    call_count++;
    return accumulator + item;
},0);

console.log(call_count);
console.log(sum);