Reduce() 함수
배열의 각 요소를 순회 callback함수의 실행값을 누적해 하나의 결과값을 반환
누산기가 있어서 배열의 각 요소에 함수를 실행하고, 누적된 값을 출력할 때 용이함
arr.reduce(callback[,initialValue])
1) callback function
- accumulator > ac : 콜백 함수의 반환값을 누적함
- currentValue > crr : 배열의 현재 요소
- index(Optional) > idx : 배열 현재 요소의 인덱스
- array(Optional) : reduce()를 호출한 배열
> 콜백 함수의 반환값은 accumulator에 할당되고 순회 중 계속 누적되어서 최종적으로 하나의 값을 반환
2) initalValue(Optional)
최초 callback 함수 실행 시, accuulator 인수에 제공되는 값
초기값을 제공하지 않은 경우, 배열의 첫번째 요소를 사용하고 빈 배열에서 초기값이 없을 경우 에러 발생
실행예제
1) initalValue = 0인 경우
const arr = [1,2,3,4,5];
const result = arr.reduce((acc, cur, idx) => {return acc += cur;}, 0);
console.log(result);
// initialValue = 0이라 acc의 초기값은 0
// 배열의 첫번째 요소부터 acc에 자신의 값인 cur을 더해감
reduce()를 실행하고 난 뒤 최종적으로 반환하는 값은 0+1+2+3+4+5 = 15
2) initalValue = 배열인 경우
const numbers = [2, -5, -123, 59, -5480, 24, 0]; // array
const result = numbers.reduce((acc, cur, idx) => {
if(cur <0){
// 처리할 현 요소가 음수인 경우
acc[0]++;
}
else if(cur>0) {
// 처리할 요소가 양수인 경우
acc[1]++;
}
return acc;
}, [0,0]);
// 음수와 양수의 개수를 세기 위해 [0,0]dmfh tjfwjd
console.log(result); // [3,3]
참고자료
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
728x90
'JAVASCRIPT' 카테고리의 다른 글
[자바스크립트] 콜백함수 / 비동기 처리 / await (0) | 2022.09.16 |
---|---|
[자바스크립트] 재귀함수 (0) | 2022.09.16 |
[자바스크립트] 함수 선언 (0) | 2022.09.15 |
[프로그래머스] 짝수와 홀수 (0) | 2022.09.15 |
[자바스크립트] Html에서 Javascript 작성하기 (0) | 2022.09.15 |