반복되는 연산에 대한 값을 받아올 때 사용하는 배열 메소드이다(알고리즘 담당멘토님 왈)
아래는 Array.reduce()기본적인 정보이다
arr.reduce(callback[, initialValue])
매개변수
1. callback 다음의 네 가지 인수를 받는다
- totalValue: 콜백의 반환값(축적된 총 값)
- currentValue: 현재 배열 내 처리되고 있는 요소
- currentIndex(Optional): 현재 배열 내 처리되고 있는 요소의 인덱스
- array(Optional): reduce 호출에 사용되는 원 배열
- initialValue(Optional): 콜백의 첫 번째 인수의 값에 사용되는 디폴트 값
아래는 예제코드이다.
// 예시 1
// arr의 모든 요소의 합을 구해보자!
let arr = [ 13, 63, 29, 57];
let sum = arr.reduce((total, val, idx, arr) => total + val, 0);
console.log(sum);// 162
기본적으로 reduce 메서드도 다른 메서드와 동일하게 첫 번째 인자로 함수를 받는다. 하지만, 두 번째 인자로 초기값을 셋팅할 수 있다는 것에서 차이가 있다. 물론, 두 번째 인자는 생략이 가능하며, 생략 시에는 배열의 첫 번째 값이 그값을 담당한다.
뿐만 아니라 배열을 순회하면서 return 한 값들을 accumulator, 즉 계속해서 전달받아서 사용할 수 있다. accumulator 를 어떻게 활용하냐에 따라 최종적인 return 값은 string, integer 가 될 수도, array 나 object 가 될 수도 있다.