const friends = [
{
name: '양주진',
age: 32,
job: '코인러',
married: false,
},
{
name: '오영제',
age: 32,
job: '랩퍼',
married: false,
},
{
name: '서준형',
age: 32,
job: '2년차 유부남',
married: true,
}
]; // 3명의 나이를 더해봅니다.
// 여기서 초기값 설정이 반드시 필요합니다.
const ageSum = friends.reduce((accumulator, currentObject) => {
return accumulator + currentObject.age;
}, 0);
console.log('친구들 나이 합 ', ageSum);
나이의 합을 구할때 currentObject는 .age를 붙였는데 accumulator 는 붙이지 않았는데 어떻게
friends 의 age에 바로 접근이 가능한건지 이해가 가지 않는다.
accumulator
currentObject.age
*** 해결 ***
reduce 함수의 구조를 보면
arr.reduce((acc,cur) => acc + cur, 0);
이런 형태를 보이고 있는데 여기서 봤어야 하는 것은 'cur,' 뒤에 있는 0이다.
저 자리는 acc 의 default 값을 정하는 자리로 저 부분에 0을 할당하는 것으로 초깃값이 정해진다.
reduce 함수 동작에 따른 값 변화
1. acc 의 초깃값은 0으로 할당
2. acc = acc + cur.age;
acc (acc += cur) cur.age (=friends) 0 32 friends[0].age 32 32 friends[1].age 64 32 friends[2].age 92
'why?' 카테고리의 다른 글
Javascript_Question(1) : 함수의 출력 (1) | 2023.06.22 |
---|