개요
: 배열의 각 요소에 대해 주어진 reducer 함수를 실행하고 하나의 결과 값을 반환
: map()이나 filter() 등의 함수의 기능을 reduce() 하나로 가능
: 별도의 변수를 선언하지 않고도 결과가 출력됨
const result = arr.reduce((acc, cur, idx, arr) => {
// callback function
}, initialValue);
- acc (accumulator)
: 누산기로서 콜백 함수의 반환 값을 누적
: 콜백의 이전 반환 값 또는 콜백의 첫 번째 반환 값으로 시작
: initialValue를 제공한 경우에는 initialValue에 연산 결과를 누적
- cur (currentValue)
: reduce 함수안에서 1회전당 처리할 현재요소
- idx (currentIndex) / optional
: reduce 함수안에서 1회전당 처리할 현재요소의 인덱스
: initialValue를 제공한 경우 0, 아닌 경우 1부터 시작
- arr (array) / optional
: reduce()를 호출한 원 배열
- initialValue / optional
: 콜백의 최초 호출에서 첫 번째 인수에 제공하는 값
: 제공하지 않으면 배열의 첫 번째 요소를 사용
: 빈 배열에서 초기 값 없이 reduce()를 호출할 경우 오류 발생
예제1
const arr = [1, 2, 3, 4, 5];
const result = arr.reduce((acc, cur, idx) => { return acc += cur; }, 0);
console.log(result); // 15
const arr2 = [1, 2, 3, 4, 5];
const result2 = arr2.reduce((acc, cur, idx) => { return acc += cur; }, 10);
console.log(result2); // 25
예제2
const numbers = [2, -5, -123, 59, -5480, 24, 0, -69, 349, 3];
const result = numbers.reduce((acc, cur, idx) => {
if(cur < 0){
// 처리할 현재 요소가 음수일 경우
acc[0]++;
}
else if(cur > 0){
// 처리할 현재 요소가 양수일 경우
acc[1]++;
}
return acc;
}, [0,0]);
console.log(result); // [4, 5]
Refference
[Node.js] javascript: Array.reduce() 사용 방법 정리
Array.reduce() ● 기본 정리 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. arr.reduce(callback[, initialValue]) callback : 배열의 각 요소에 대..
miiingo.tistory.com
'Programming > JavaScript' 카테고리의 다른 글
javascript의 데이터를 멋있게 다루는 방법에 대한 총 정리. (filter / find / reduce / map / forEach /new Map / new Set / lodash / regex) (0) | 2022.04.19 |
---|---|
자바스크립트 배열의 요소 삭제하기 (0) | 2022.04.19 |
자바스크립트 배열 중복 요소 제거 방법 (reduce, filter, set) (0) | 2022.04.19 |
바닐라 자바스크립트란? (0) | 2022.04.04 |
자바스크립트 - 구조 분해 할당 (0) | 2022.04.04 |