Object

WONNY_LOG·2023년 4월 17일

javascript

목록 보기
7/8

💡Object란?

객체는 이름과 값으로 구성된 프로퍼티들의 집합

👉 객체 선언의 형태

https://velog.velcdn.com/images%2Fjaewon97%2Fpost%2F1a173d02-8e04-4c9b-b46c-f5e8b8303388%2Fimage.png

  • 객체는 {}(중괄호)로 감싸져 있고,
  • 콜론으로 구분된 이름 / 값 의쌍 들이, 쉼표로 분리된 목록의 형태이다.
  • property 이름은 중복될 수 없다.
  • property이름과 property값 사이에 : (콜론)으로 구분한다.
  • property를 추가할 때는 , (쉼표)를 붙여준다.
  • property 값에는 어느 type이나 가능하다(string, number, array, object, function..)

👉 객체의 property값에 접근하는 형태

https://velog.velcdn.com/images%2Fjaewon97%2Fpost%2F62d4c365-de77-4c09-a268-5803c52b52f7%2Fimage.png

  • 마침표(.) 연산자를 사용하며, 접근하려는 객체명은 왼쪽에, 프로퍼티 명은 오른쪽에 위치한다.
  • 대괄호([])를 사용하여, 접근하려는 객체명은 왼쪽에, 프로퍼티 명은 쌍따옴표("")와 함께 대괄호 안에 작성한다.

🧐 Assignment 문제

getData 함수를 구현해주세요!

  • *getData 함수는 세 개의 배열을 인자로 받습니다.**
    1. salesArr : 날짜별 판매량
      • ex) [["20190401", 34], ["20190402", 23], ["20190403", 29]]
    2. reviewArr : 날짜별 리뷰수
      • ex) [["20190328", 3], ["20190401", 0], ["20190403", 1]]
    3. likeArr : 날짜별 좋아요수
      • ex) [["20190328", 98], ["20190401", 102], ["20190403", 125]]
  • 위의 예시로 보여드린 배열은 단지 예시일 뿐, 날짜별 판매량 배열은 365일치 요소가 들어있을 수도 있습니다.
  • 왜 각각 세 개의 배열을 하나의 객체로 구조를 바꿔야 할까요?위의 배열에서 4월 1일에 판매량, 리뷰수, 좋아요 수를 확인하려면 세 개의 배열을 각각 for문으로 반복해서 날짜를 확인해야 하므로 좋은 구조의 데이터라고 할 수 없습니다. (날짜가 365일이라고 하면, 세 개의 배열이 각자 365번 돌아야 하니까요)
  • 그래서 세 개의 배열을 사용하기 좋게 객체로 바꿀 것입니다. 객체는 프로퍼티명으로 바로 접근 가능하니까, 날짜만 알면 반복 문을 돌지 않아도 바로 데이터를 얻을 수 있습니다. 그래서 객체의 형태로 데이터 구조를 바꾸려는 것입니다.
  • 다음 요구사항을 충족하는 객체를 만들어서 return 해주세요.
  • 리턴되는 객체가 갖고 있는 property는 3개 입니다.
    1. sumAmount : 총 판매량
    2. sumReview : 총 리뷰개수
    3. sumLike : 총 좋아요수

✍️ 풀이

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

0개의 댓글