reduce 메서드
배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초깃값);
reduce 인자
누적 값(acc)
현재 값(cur)
현재 인덱스 (curIndex)
원본 배열(arr)
누적값이기 때문에 다양하게 활용할 수 있다.
const oneTwoThree = [1, 2, 3];
result = oneTwoThree.reduce((acc, cur, i) => {
console.log(acc, cur, i);
return acc + cur;
}, 0);
// 0 1 0
// 1 2 1
// 3 3 2
result; // 6
누적된값 + 현재값을 더하면 된다!
acc(누적값)이 초깃값인 0부터 시작해서 return하는대로 누적되는 것을 볼 수 있다.
초깃값을 적어주지 않으면 자동으로 초깃값이 0번째 인덱스의 값이 된다
map으로 reduce 만들기
result = oneTwoThree.reduce((acc, cur) => {
acc.push(cur % 2 ? '홀수' : '짝수');
return acc;
}, []);
result; // ['홀수', '짝수', '홀수']
reduce 활용 (홀수만 필터링 하는 코드)
const oneTwoThree = [1, 2, 3];
result = oneTwoThree.reduce((acc, cur) => {
if (cur % 2) acc.push(cur); // acc에 cur 값을 push한다.
return acc;
}, []);
result; // [1, 3]
현재값이 2의 배수면 누적값에 현재값을 넣고, 누적된 값을 리턴한다.
'Front-end > JavaScript' 카테고리의 다른 글
CORB란? (0) | 2022.12.10 |
---|---|
[JavaScript] 자바스크립트 동작원리 (Stack, Queue, 동기와 비동기) (0) | 2022.01.18 |
[JavaScript] 객체지향 Class 문법 & prototype (0) | 2022.01.18 |
[JavaScript] sort() 함수 (0) | 2022.01.11 |
[JavaScript] Deep copy vs Shallow copy (0) | 2021.12.05 |