:
으로 구분된 이름(key), 값(value)의 쌍들이, 쉼표,
로 분리된 목록의 형태이다.- jungmin이라는 객체만들기
let jungmin = { name: "jungmin", nickname:"mango", old:24 } console.log(jungmin); console.log(jungmin.nickname); //`객체명.key`를 출력하면 value값이 나온다. console.log(jungmin["old"])
👇🏻 결과
{ name: 'jungmin', nickname: 'mango', old: 24 }
'mango'
241. 객체 value값 얻기
은
.
과[]
를 이용해서 얻을 수 있다.1-1
.
사용하기객체명.property이름(key)를 출력하면
property value
값이 나온다.
ex)console.log(jungmin.nickname)
-> mango1-2
[]
사용하기객체명["property이름(key)"]
ex)jungmin["old"]
-> 24
-위처럼 프로퍼티 명을 쌍따옴표("")와 함께 대괄호 안에 작성합니다.
-대괄호 안에는 직접적인 property이름(key)가 아니더라도 변수가 들어갈 수 있다.let jungmin = { name: "jungmin", nickname:"mango", old:24 } let who = "name" jungmin[who]
👇🏻 결과
'jungmin'
2. property의 value값을 수정하거나 property를 추가 또는 삭제하기
2-1 추가 또는 수정하기
원래 있던 property명에 새로운 value값을 할당해주면 값이 변경되고
ex)jungmin.name="choi jung min"
orjungmin["name"]="choi jung min"
새로운 property명에 새로운 valuer값을 할당해주면 새로운 property가 생성된다. ex)jungmin.mbti="ESFJ"
orjungmin["mbti"]="ESFJ"
let jungmin = { name: "jungmin", nickname:"mango", old:24 } jungmin.mbti="ESFJ" jungmin.name = "choi jungmin" console.log(jungmin)
👇🏻 결과
{ name: 'choi jungmin', nickname: 'mango', old: 24, mbti: 'ESFJ' }
2-2 삭제하기
객체명.property 앞에 delete를 사용해 해당되는 property를 삭제할 수 있다.
ex)delete jungmin.name
let jungmin = { name: "jungmin", nickname:"mango", old:24 } delete jungmin.name console.log(jungmin)
👇🏻 결과
{ nickname: 'mango', old: 24 }
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]]
- 다음 요구사항을 충족하는 3개의 property를 가지는 객체를 만들어서 return 해주세요.
sumAmount
: 총 판매량sumReview
: 총 리뷰개수sumLike
: 총 좋아요수
나의 풀이 1 😛function getData(salesArr, reviewArr, likeArr){ let totalSales=0; for(let i = 0; i < salesArr.length; i++){ totalSales+=salesArr[i][1]; } let totalReview=0; for(let i = 0; i < reviewArr.length; i++){ totalReview+=reviewArr[i][1]; } let totalLike=0; for(let i = 0; i < likeArr.length; i++){ totalLike+=likeArr[i][1]; } return { sumAmount: totalSales, sumReview: totalReview, sumLike: totalLike } } console.log(getData([["20190401", 34], ["20190402", 23], ["20190403", 29]],[["20190328", 3], ["20190401", 0], ["20190403", 1]],[["20190328", 98], ["20190401", 102], ["20190403", 125]])))
👇🏻 결과
{ sumAmount: 86, sumReview: 4, sumLike: 325 }
나의 풀이 2 😛
객체를 조금 더 알게되어 객체를 사용하여 구현을 시도했는데 어떤 풀이가 더 효율적인지 모르겠다 ! 객체를 사용해보는 거에 의의를 두자 ^^function get1Data(salesArr, reviewArr, likeArr){ let obj={ amount:salesArr, review:reviewArr, like:likeArr }; let result= {}; let total = 0; let resultKey = [ "sumAmount","sumReview","sumLike"]; for (let i in Object.keys(obj)){ //Object.keys(obj)=[ 'amount', 'review', 'like' ] for(let j in obj[Object.keys(obj)[i]] ){ total+=obj[Object.keys(obj)[i]][j][1]; } result[resultKey[i]]=total; //result객체에 각 sumAmount,sumReview,sumLike(key값)에 total = 0; //각 결과(value값)을 할당한 property 생성 } // 계산한 총합값을 넣어주고 다음 인자의 총합값을 계산하기위해 total값을 0초기화함. return result; } console.log(getData([["20190401", 34], ["20190402", 23], ["20190403", 29]],[["20190328", 3], ["20190401", 0], ["20190403", 1]],[["20190328", 98], ["20190401", 102], ["20190403", 125]])))
👇🏻 결과
{ sumAmount: 86, sumReview: 4, sumLike: 325 }