array안에object값 더하기

이경준·2020년 12월 1일

object안에 각각의 값들을 더하는 함수는 사전에 reduce를 사용하여 구현이 가능했었다. 같은 방식으로 array안에 object의 값을 더하는 연습을 하던중 개념이 살짝 달라지는듯 하여 글로 남긴다.


연습1)

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로 접근 하여야 한다.


연습2) map을 이용하여 합을 구해보자 (함수형으로)

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를 이중으로 감싸고 있다는 것을 잊지말자!!

profile
내가 기억하기위한 블로그

0개의 댓글