다양한 유형의 객체 문제를 접해보자.
인자로 받은 데이터를 조합해서, 구조를 바꿔서 리턴하자.
objData가 갖고 있는 property는 다음의 3개이다.
function getData(salesArr,reviewArr,likeArr){
let sumAmount = 0;
let sumReview = 0;
let sumLike = 0;
for(i = 0; i < salesArr.length; i++) sumAmount += salesArr[i][1];
for(i = 0; i < reviewArr.length; i++) sumReview += reviewArr[i][1];
for(i = 0; i < likeArr.length; i++) sumLike += likeArr[i][1];
let objData = {
sumAmount,
sumReview,
sumLike
};
return objData;
}
salesArr = [["20190401", 34], ["20190402", 23], ["20190403", 29]];
reviewArr = [["20190328", 3], ["20190401", 0], ["20190403", 1]];
likeArr = [["20190328", 98], ["20190401", 102], ["20190403", 125]];
getData(salesArr, reviewArr, likeArr);
salesArr, reviewArr, likeArr의 각각의 배열에 판매량, 리뷰수, 좋아요수가 들어있는 1번 인덱스를 반복문을 통해서 각각 모두 더한다. 더한 값을 변수로 할당하여 새로운 객체에 넣어준다.
1.최종적으로 구해야할 'sumAmount: 총 판매량, sumReview: 총 리뷰개수,
sumLike: 총 좋아요수'들의 변수를 만들어 초기값 0으로 지정한다.
2.for문을 통해 배열i번만큼 돌리고, 배열 안의 배열에서 1번 인덱스(판매량,리뷰수,좋아요수)를 sumAmount, sumReview, sumLike에 할당해준다.
3. 새로운 객체 let objDate에 위의 셋을 프로퍼티로 넣어주고, 리턴한다.
handleEdit함수는 nickname, interests 라는 두 인자로 받습니다.
interests에는 여러 관심사를 적을 수 있습니다. 그 때 그 관심사의 구분을 콤마(,)를 이용합니다.nickname과 interests가 문제 없이 잘 들어왔다면 유저 정보를 효율적으로 관리하기 위해서 Object에 이 정보를 담아서 관리할 겁니다.
예시) {
nickname: "뚜비",
interests: ["방탈출","테니스","멍 때리기"],
bio: "제 닉네임은 뚜비입니다. 취미는 방탈출,테니스,멍 때리기입니다."
}
const handleEdit = (nickname, interests) => {
const res = interests.split(",");
const obj = {
nickname: nickname,
interests: res,
bio: `제 닉네임은 ${nickname}입니다. 취미는 ${interests}입니다.`
};
return obj;
}
handleEdit("뚜비", "방탈출, 테니스, 멍 때리기")
두 인자를 새로운 object에 넣는 것이 최종 목표.nickname은 그냥 넣어도 되지만, interests의 경우, 취미가 한가지 이상이될 수 있기 때문에 주의해야한다. string인 취미를 각각 쪼개서 배열에 담아주는 것이 핵심포인트다.
1.interests의 스트링을 split으로 큰따옴표("") 단위로 잘라준다. 그 값을 변수에 할당.
2. 변수obj에 nickname, interests라는 키에 각각 인자nickname, interests를 키값으로 넣어준다. 바이오도 비슷한 방법으로 넣어주고, return해준다.