Array.reduce (누적 연산)
developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
Array.reduce
는 배열함수 중에서 가장 이해하기 애매한 함수였는데,
결국 배열마다 callback
를 통해서 처리받은 value
를 계속해서 누적해서 return
해준다고 보면 좋을거 같다.
이 함수는 특별히 예제마다 거의 합산을 통해서 설명해준다 ...
const numbers = [1, -1, 2, 3, 4, 10, 13];
let sum = 0;
for (let n of numbers)
sum += n;
console.log(sum); // 32
기본적으로 배열의 총합을 구할때 위와 같이 처리해도 상관없지만
Array.reduce
를 사용하면 다음과 같이 구현된다.
const result = numbers.reduce((acc, value) => {
console.log(acc, value);
return acc + value;
});
console.log(result); // 32
callback 함수에는 2가지 값이 들어가게 되는데 첫번째 파라미터는 누산되는 값이고,
두번째는 현재 배열의 값이 들어가게 된다.
따라서 콘솔을 찍어보면
// 1, -1
// 0, 2
// 5 4
// 9 10
// 19 13
const result = numbers.reduce((acc, value) => {
console.log(acc, value);
return acc + value;
});
console.log(result); // 32
와 같이 표현되며 결국 마지막값인 19 + 13 = 32가 리턴되게 된다.
또한 콜백함수 뒤에서 초기값을 전달 해줄수도 있다.
// 10 2
// 12 3
// 15 4
// 19 10
// 29 13
const result = numbers.reduce((acc, value) => {
console.log(acc, value);
return acc + value;
}, 10);
console.log(result); // 42
'JavaScript > Vanilla JS' 카테고리의 다른 글
Array.fill (배열 채우기) (0) | 2021.04.08 |
---|---|
Array.findIndex (인덱스 값 찾기) (0) | 2021.04.07 |
Array.pop(), shift() (배열 제거) (0) | 2021.04.04 |
for of, for in 차이, break, continue (반복문) (0) | 2021.03.28 |
tooltip (툴팁 만들기) (0) | 2021.03.27 |
댓글
이 글 공유하기
다른 글
-
Array.fill (배열 채우기)
Array.fill (배열 채우기)
2021.04.08 -
Array.findIndex (인덱스 값 찾기)
Array.findIndex (인덱스 값 찾기)
2021.04.07 -
Array.pop(), shift() (배열 제거)
Array.pop(), shift() (배열 제거)
2021.04.04 -
for of, for in 차이, break, continue (반복문)
for of, for in 차이, break, continue (반복문)
2021.03.28