문제 풀이 : object 응용

강지원·2021년 10월 10일
0
post-thumbnail

getData 함수를 구현.

  • getData 함수는 세 개의 배열을 인자로 받습니다.

salesArr : 날짜별 판매량
ex) [["20190401", 34], ["20190402", 23], ["20190403", 29]]
reviewArr : 날짜별 리뷰수
ex) [["20190328", 3], ["20190401", 0], ["20190403", 1]]
likeArr : 날짜별 좋아요수
ex) [["20190328", 98], ["20190401", 102], ["20190403", 125]]

  • 다음 요구사항을 충족하는 객체를 만들어서 return 해주세요.
  • 리턴되는 객체는 아래와 같이 3개의 property를 가집니다.

sumAmount : 총 판매량
sumReview : 총 리뷰개수
sumLike : 총 좋아요수

1. 최종 코드

function getData(salesArr,reviewArr,likeArr){  
let sumAmount = 0;
let sumReview = 0;
let sumLike = 0;

for(let i=0; i<salesArr.length;i++) {
 sumAmount += salesArr[i][1];
}
for(let i=0; i<reviewArr.length;i++) {
 sumReview += reviewArr[i][1];
}
for(let i=0; i<likeArr.length;i++) {
 sumLike += likeArr[i][1];
}
let obj = {
  sumAmount: sumAmount,
  sumReview: sumReview,
  sumLike: sumLike,
};
return obj;
}

2. 풀이 과정

배열들을 객체로 만들어 리턴하는 것이 최종 목표.

총 판매량, 총 리뷰 개수, 총 좋아요 수를 객체에 넣어야 하기 때문에
각 배열에 존재하는 배열 요소들을 하나로 합쳐주는 것을 우선적으로
해줘야겠다.

  1. 배열 요소를 반복적으로 수색하며 특정 값을 찾아 더해야 함으로
    for문을 사용해 진행했다.

    그리고, 배열 요소를 들여다 보면 배열[0][0]에는 날짜 데이터가,
    배열[0][1]에는 판매량, 리뷰 수, 좋아요 수 데이터가 들어가있다는 것을
    볼 수 있다.

    이게 말하는 바는 무엇이냐, 반복문에서 매번 더해주는 것이
    배열[0][1]이면 된다는 것이다.

// 2. let sumAmount = 0;
//    let sumReview = 0;
//    let sumLike = 0; //1번에서 변수 안에 숫자가 들어가니,
//    숫자가 들어갈 수 있는 빈 변수를 뒤늦게 만들어줬다.

// 1. 반복문 3개를 만들어준다. 
for(let i=0; i < salesArr.length; i++) {
sumAmount += salesArr[i][1];
}
for(let i=0; i < salesArr.length; i++) {
sumReview += reviewArr[i][1];
}
for(let i=0; i < salesArr.length; i++) {
sumLike += likeArr[i][1];
}
  1. 각 반복문을 마치면 총합의 변수들을 객체에 넣어 저장해준다.
const obj = {
sumAmount = sumAmount,
sumReview = sumReview,
sumLike = sumLike
};
  1. 새로운 객체인 obj를 리턴해주면 끝.

3. 마치며

객체 문제를 풀며 갑자기 궁금해진 점이 생겼다.
객체를 만들 때 마다 자동으로 객체 마지막 데이터에 쉼표를 찍어주는데,
이 쉼표가 없어도 에러는 나지 않았다.

이 차이가 무엇일까? 다음 포스팅에서 다뤄봐야겠다.

profile
'Why' better than 'Yes'

0개의 댓글

관련 채용 정보