<JavaScript> Object ๊ฐ์ฒด

Lown Kimยท2021๋…„ 9์›” 28์ผ
0
post-thumbnail

๐Ÿฅ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๋ฌธ์ œ ํ’€์ด



ํ•™์Šต ๋ชฉํ‘œ
๊ฐ์ฒด์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์›ํ•˜๋Š” ๊ฐ์ฒด์— ์ ‘๊ทผํ•ด ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด์˜ ๊ธฐ๋ณธ ํ˜•ํƒœ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๊ฐ์ฒด๋Š” ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ ธ ์žˆ๊ณ ,
์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์ด๋ฆ„ / ๊ฐ’์ด๋ผ๋Š” ํ”„๋กœํผํ‹ฐ์„ธํŠธ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฐ๊ฐ์˜ ํ”„๋กœํผํ‹ฐ์„ธํŠธ๋“ค์ด ์‰ผํ‘œ๋กœ ๋ถ„๋ฆฌ๋œ ๋ชฉ๋ก์ด ๊ฐ์ฒด์ด๋‹ค.

๊ฐ์ฒด์ด๋ฆ„ = {
	key : value,
    "์–ด์ฉŒ๊ตฌ" : "์ €์ฉŒ๊ตฌ",
    "ํŒŒ์ด๋ฆฌ" : "๊ผฌ๋ถ€๊ธฐ",
    "์ฝ”์Šค๋ชจ" : "์™„๋‹ค",
    "๋ฏธ์นด์‚ฌ" : "์—๋ Œ",
    "๋ฌด์ง€์นด" : "์†ก์ฅฌ",

    
}



๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๋Š” ๊ทœ์น™๋“ค

1. property ์ด๋ฆ„์€ ์ค‘๋ณต๋  ์ˆ˜ ์—†๋‹ค.
2. property์ด๋ฆ„๊ณผ property๊ฐ’ ์‚ฌ์ด์— : (์ฝœ๋ก )์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
3. property๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” , (์‰ผํ‘œ)๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค.
4. property ๊ฐ’์—๋Š” ์–ด๋Š type์ด๋‚˜ ๊ฐ€๋Šฅํ•˜๋‹ค(string, number, array, 
object, function..)



์•„๋ž˜์™€ ๊ฐ™์€ ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค!

let objData = {
  name: 50,
  address: { 
    email: "gaebal@gmail.com",
    home: "์œ„์›Œํฌ ์„ ๋ฆ‰2ํ˜ธ์ "
  },
  books: {
    year: [2019, 2018, 2006],
    info: [{
      name: "JS Guide",
      price: 9000
    }, {
      name: "HTML Guide",
      price: 19000,
      author: "Kim, gae bal"
    }]
  }
};

์œ„์˜ ๊ฐ์ฒด์† "HTML Guide" ์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

let bookName = objData.books.info[1].name;
console.log(bookName);

objData์†์˜ books๋ผ๋Š” ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๊ณ ,
๊ทธ ์†์˜ info๋ผ๋Š” ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜๊ณ ,
๊ทธ ์†์˜ 1๋ฒˆ์งธ (0๋ฒˆ์งธ ์•„๋‹˜!) ๋ฐฐ์—ด์— ์ ‘๊ทผํ•˜๊ณ ,
๊ทธ ์†์˜ name์ด๋ผ๋Š” ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.


๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

๊ฐ์ฒด์ด๋ฆ„.ํ”„๋กœํผํ‹ฐ์ด๋ฆ„
๊ฐ์ฒด์ด๋ฆ„["ํ”„๋กœํผํ‹ฐ์ด๋ฆ„"]
๊ฐ์ฒด์ด๋ฆ„[ํ”„๋กœํผํ‹ฐ์ด๋ฆ„]

์ด๋ ‡๊ฒŒ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์˜จ์ ๊ณผ ๋Œ€๊ด„ํ˜ธ ์†์— ์Œ๋”ฐ์˜ดํ‘œ๋ฅผ ๋„ฃ๋Š” ๋ฐฉ์‹์€ ํ”„๋กœํผํ‹ฐkey์˜ ์ •ํ™•ํ•œ ์ด๋ฆ„์„ ์ ์–ด์„œ ์ง์ ‘ ์ ‘๊ทผํ• ๋•Œ ์‚ฌ์šฉ๋˜๊ณ 
๋Œ€๊ด„ํ˜ธ๋Š” ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ €๋Ÿฐ์‹์œผ๋กœ ํ”„๋กœํผํ‹ฐ key๋ฅผ ๋ถˆ๋Ÿฌ์ฃผ๋ฉด ๊ฒฐ๊ณผ๋กœ๋Š” ํ•ด๋‹น key๊ฐ€ ๋ก ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•ด๋‹น key์— ๋Œ€ํ•œ value๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์žŠ์ง€ ์•Š์•„์•ผํ•œ๋‹ค!


์˜ˆ๋ฅผ ๋“ค์–ด plan1 ๊ฐ์ฒด์˜ name ์ด๋ผ๋Š” ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์„ ๋•Œ,
์•„๋ž˜์™€ ๊ฐ™์ด ๋Œ€๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

let plan1 = {   
  name: "Basic"
};

let propertyName = "name";

console.log(plan1[propertyName]);

๋Œ€๊ด„ํ˜ธ ์•ˆ์— propertyName์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ช…์„ ์‚ฝ์ž…ํ•จ์œผ๋กœ์จ plan1๊ฐ์ฒด ๋‚ด์˜ name์ด๋ผ๋Š” key์— ์ ‘๊ทผํ•œ๊ฒƒ์ด๋‹ค.


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){
//์ œ์‹œํ•ด์ค€ ์ธ์ž ์„ธ ๊ฐœ๋ฅผ ์ž˜ ๋ฐ›๊ณ 
  let A = salesArr[0][1] + salesArr[1][1] + salesArr[2][1]
  //A๋ณ€์ˆ˜์— ๊ฐ๊ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•ด์„œ ๋”ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ํ• ๋‹น.
  //์•„๋ž˜ ๊ฒฐ๊ณผ๋“ค๋„ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ํ• ๋‹น
  let B = reviewArr[0][1] + reviewArr[1][1] + reviewArr[2][1]
  let C = likeArr[0][1] + likeArr[1][1] + likeArr[2][1]
    
  let datas = {
  //datas๋ผ๋Š” ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ
    sumAmount: A,
    //sumAmoun๋ผ๋Š” key์— A๋ผ๋Š” value ํ• ๋‹น!
    //์•„๋ž˜ ํ”„๋กœํผํ‹ฐ๋“ค๋„ ์ด์™€ ๊ฐ™์ด ํ• ๋‹น
    sumReview: B,
    sumLike: C
  };

  return datas;
}

๋ฌธ์ œ ์ž์ฒด๋Š” ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์š”ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ๊ฐ€๋ฏธ๋œ ๊ฐ„๋‹จํ•œ ๊ฐ์ฒด ๋ฌธ์ œ์˜€์ง€๋งŒ
๊ฐ์ฒด ์•ˆ์— ์š”์†Œ๋“ค์ด ์–ผ๋งˆ ์—†์„ ๋• ๊ดœ์ฐฎ์€๋ฐ ๊ฐ์ฒด ์•ˆ์— ์š”์†Œ๊ฐ€ ๋Š˜์–ด๋‚˜๊ณ  ๋ฐ์ดํ„ฐํƒ€์ž…๋„ ๊ฐ€์ง€๊ฐ์ƒ‰์ด ๋˜๋ฉด ์ ์  ๊ฐ€๋…์„ฑ์ด ์•ˆ์ข‹์•„์ง€๊ณ  ๋ณต์žกํ•ด์ง€๊ธฐ ์‹œ์ž‘ํ•˜๋‹ˆ๊นŒ ์กฐ์‹ฌํ•ด์•ผ๊ฒ ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€