reduce
Reduce()
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
- 초깃값이 없을 때 : 초깃값이 없을 때는 0번째 인덱스가 초깃값이 된다!!
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
댓글남기기