reduce는 배열의 각 요소에 대해 주어진 리듀서 함수를 실행하고, 하나의 결과값을 반환하는 메서드이다.
우선, reduce의 문법 구조부터 살펴보자.
배열.reduce((누적값, 현재값, 인덱스, 요소) => { return 결과 }, 초깃값);
var oneTwoThree = [1,2,3]
result = oneTwoThree.reduce((acc, cur, i) => {
console.log(acc, cur, i);
return acc + cur;
}, 0); // 초깃값 0
// 0 1 0
// 1 2 1
// 3 3 2
result; // 6
var oneTwoThree = [1,2,3]
result = oneTwoThree.reduce((acc, cur, i) => {
console.log(acc, cur, i);
return acc + cur;
}); // 초깃값 없음
// 1 2 1
// 3 3 2
result; // 6
reduce에 대해 작성하기 위해 구글링을 하다가 보게 된 한 블로그에서 원하는 값만 사용하는 방법을 발견하였다.
뭔가 보고나니까 당연한 사실인데 막상 사용하려하면 생각을 못 할 것 같아서 작성한다!
const friends = [
{
name: '짱구',
age: 28,
job: '회사원',
},
{
name: '철수',
age: 38,
job: '은행원',
},
{
name: '유리',
age: 33,
job: '요리사', }
];
// 3명의 나이를 더해봅니다.
// 여기서 초기값 설정이 반드시 필요합니다.
const ageSum = friends.reduce((accumulator, currentObject) => {
return accumulator + currentObject.age;
}, 0);
console.log('나이 합 ', ageSum); // 친구들 나이 합 99