07-10. 배열내장 함수(reduce)
배열내장 함수
배열을 다룰 때 알고있으면 너무나 유용한 다양한 내장 함수들에 대하여 알아보겠습니다.
reduce
는 잘 알아두면 정말 유용한 내장함수입니다.
const numbers = [1, 2, 3, 4, 5];
let sum = 0;
numbers.forEach(n => {
sum += n;
});
console.log(sum)
// 결과)
15
위에 forEach로 반복문을 이용해서 배열에 있는 모든 원소를 더한 값을 보여주고 있다.
reduce
를 이용하면 이것을 한줄로 작성이 가능합니다.
리듀서 함수는 네 개의 인자를 가집니다.
누적된 원소 accumulator (acc)
현재 값 (cur)
현재 인덱스 (idx)
원본 배열 (src)
리듀서 함수의 반환 값은 누적된 원소에 할당되고, 누적된 원소는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, cur) => {
return acc + cur;
}, 0); //(0은 초기 accumulator값이 됩니다.)
reduce
를 이용해서 평균을 구해보자
const numbers = [1, 2, 3, 4, 5];
const avg = numbers.reduce((acc, cur, idx, src) => {
if(idx === src.length - 1){
return (acc + cur) / src.length;
}
return acc + cur;
}, 0); //(0은 초기 accumulator값이 됩니다.)
// 결과)
3
Last updated
Was this helpful?