object안에 각각의 값들을 더하는 함수는 사전에 reduce를 사용하여 구현이 가능했었다. 같은 방식으로 array안에 object의 값을 더하는 연습을 하던중 개념이 살짝 달라지는듯 하여 글로 남긴다.
const adults = [{ age: 25 }, { age: 30 }, { age: 35 }, { age: 40 }, { age: 50 }];
const children = [{ age: 1 }, { age: 2 }, { age: 3 }, { age: 4 }, { age: 5 }];
일단 배열안에 있는 object로 접근한후 그 object의 age값을 받아야한다.
반복문이 필요할듯하다.
const ageTotal = {};
for (let i = 0; i < adults.length; i++) {
if (!ageTotal.age) {
ageTotal.age = 0;
}
ageTotal.age += adults[i].age + children[i].age;
}
console.log(ageTotal);
// {age: 195}
adults와 children은 array안에 object이기 때문에 adult[i]와 같이 object로 접근한 후에 age로 접근 하여야 한다.
const getTotalOfAges = (adults, children) => {
const ageTotal = {};
const adultsAge = adults.map((ages) => {
if (!ageTotal.age) {
ageTotal.age = 0;
}
ageTotal.age += ages.age;
});
const childAge = children.map((ages) => {
if (!ageTotal.age) {
ageTotal.age = 0;
}
ageTotal.age += ages.age;
});
return ageTotal;
};
console.log(getTotalOfAges(adults, children));
// {age: 195}
array와 object가 age를 이중으로 감싸고 있다는 것을 잊지말자!!