Assignment
이제까지 하셨던 Assignment 와는 조금 다른 유형입니다. 그 동안에는 특정값을 구해서 리턴 했다면, 이번에는 인자로 받은 데이터를 조합해서, 구조를 바꿔서 리턴합니다.
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 : 총 좋아요수
코드
function getData(salesArr,reviewArr,likeArr){
// 풀이 1
let sumAmount =0;
let sumReview =0;
let sumLike =0;
// 풀이 2
for (let i=0; i<salesArr.length; i++ ) {
sumAmount += Number(salesArr[i][1]);
console.log(sumAmount);
}
for (let i=0; i<reviewArr.length; i++) {
sumReview += Number(reviewArr[i][1]);
console.log(sumReview);
}
for (let i=0; i<likeArr.length; i++) {
sumLike += Number(likeArr[i][1]);
console.log(sumLike);
}
// 풀이 3
return {'sumAmount':sumAmount, 'sumReview':sumReview, 'sumLike':sumLike}
}
let salesArr = [["20190401",34], ["20190402",23], ["20190403",29]]
let reviewArr = [["20190328",3], ["20190401",0], ["20190403",1]]
let likeArr = [["20190328", 98], ["20190401", 102], ["20190403", 125]]
let sumDate =getData(salesArr,reviewArr,likeArr)
console.log(sumDate);
풀이
복습하면서 깨달은 점, 2가지
1. 배열로 리턴할 때 키값이 자동으로 생성된다.
return {'sumAmount':sumAmount, 'sumReview':sumReview, 'sumLike':sumLike}
=== return {sumAmount,sumReview, sumLike}
2. forEach 으로 바꾸고, 함수로 작성한다.
function getData(salesArr,reviewArr,likeArr){
//풀이 1.
const sum = (arr) =>{
let count = 0;
// 추가 설명
arr.forEach((item)=> count += item[1]);
console.log(count);
return count;
}
//풀이 2.
return {
sumAmount : sum(salesArr),
sumReview : sum(reviewArr),
sumLike : sum(likeArr)
}
}
let salesArr = [["20190401", 34], ["20190402", 23], ["20190403", 29]];
let reviewArr = [["20190328", 3], ["20190401", 0], ["20190403", 1]];
let likeArr = [["20190328", 98], ["20190401", 102], ["20190403", 125]];
console.log(getData(salesArr,reviewArr,likeArr));
풀이
arr.forEach(item) => count += item[1];
-->arr = [["20190401", 34], ["20190402", 23], ["20190403", 29]];
-->item = ["20190401", 34], ["20190402", 23], ["20190403", 29]
-->item[1] = 34, 23, 29
return {
sumAmount : sum(salesArr),
sumReview : sum(reviewArr),
sumLike : sum(likeArr)
}