<JavaScript> Object ๊ฐ์ฒด(2)

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

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


๊ฐ์ฒด์—์„œ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” key์— ๊ฐ’์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ํ• ๋‹นํ•˜๋ฉด ๋ณ€๊ฒฝ๋˜๊ณ ,
์ด์ „์— ์—†๋˜ key๋กœ ์ ‘๊ทผํ•˜๋ฉด ์ƒˆ๋กœ์šด ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ถ”๊ฐ€ ๋œ๋‹ค.



โฌ‡๏ธ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ key์— ์ ‘๊ทผํ•˜๊ณ  ๊ฐ’์„ ์žฌํ• ๋‹น, ์ถ”๊ฐ€ํ•˜๋Š” ๋ชจ์Šตโฌ‡๏ธ

let difficult = {
  name : 'n',
  color : 'c'
}
console.log(difficult['name']);
//n์ด ์ถœ๋ ฅ๋จ
difficult['name'] = '๊ฐ’ ๋ฐ”๊พผ๋‹ค';
console.log(difficult['name']);
//์žฌํ• ๋‹นํ–ˆ์œผ๋‹ˆ n์ด ์•„๋‹ˆ๋ผ '๊ฐ’ ๋ฐ”๊พผ๋‹ค'๊ฐ€ ์ถœ๋ ฅ๋จ

difficult.color = '์ƒ‰๊น”';
console.log(difficult.color);
//์žฌํ• ๋‹นํ–ˆ์œผ๋‹ˆ c๊ฐ€ ์•„๋‹ˆ๋ผ '์ƒ‰๊น”'์ด ์ถœ๋ ฅ๋จ

console.log('์ƒ์„ฑ์ „: ' + difficult.new);
//๊ฐ’์ด ํ• ๋‹น๋œ ์  ์—†์œผ๋ฏ€๋กœ undefined ์ถœ๋ ฅ!
difficult.new = '์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ํ”„๋กœํผํ‹ฐ';
console.log('์ƒ์„ฑํ›„: ' + difficult.new);
//๊ฐ’์„ ์ถ”๊ฐ€ํ–ˆ์œผ๋‹ˆ '์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ํ”„๋กœํผํ‹ฐ'๊ฐ€ ์ถœ๋ ฅ๋จ



์ค‘์ฒฉ๋œ ๊ฐ์ฒด (Nested Object)

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ค‘์ฒฉ๋œ ๊ฐ์ฒด์—์„œ 'simple'์„ ์ถœ๋ ฅํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์•ผํ• ๊นŒ?

let nestedObj = {
	type: {
		year: '2019',
		'comment-type': [{
			name: 'simple'
		}]
	}
}

console.log(nestedObj.type.['comment-type'][0].name)
๋ผ๊ณ  ์ ์–ด์•ผ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!

ํ’€์–ด๋ณด๋ฉด,
nestedObj๋ผ๋Š” ๊ฐ์ฒด ์†์˜
type์ด๋ผ๋Š” ๊ฐ์ฒด ์†์˜
'comment-type'๋ผ๋Š” key๊ฐ’ ์†์˜
0๋ฒˆ์งธ ๋ฐฐ์—ด ์†์˜
name์ด๋ผ๋Š” key๊ฐ’!

์— ์ ‘๊ทผ ํ•œ ๊ฒƒ์ด๊ธฐ๋•Œ๋ฌธ์—
'simple'์ด๋ผ๋Š” value๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.


Assignment

getAnswer ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด ์ฃผ์„ธ์š”.
getAnswer ํ•จ์ˆ˜๋Š” ์•„๋ž˜์˜ ๊ฐ์ฒด์—์„œ '์ƒ๋Ÿฌ๋“œ' ๋ผ๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
let myProfile = {
name: '๊น€๊ฐœ๋ฐœ',
address: {
email: 'geabal@gmail.com',
home: '์œ„์›Œํฌ'
},
'my favorite': {
food: [{
name: '์ƒ๋Ÿฌ๋“œ',
price: 3500
}, {
name: '์‚ผ๊ฒน์‚ด',
price: 15000
}],
hobby: ['์ถ•๊ตฌ']
}
}




๋‚˜์˜ ๋‹ต์•ˆ

function getAnswer() {
  let result = myProfile['my favorite'].food[0].name
  return result;
}

myProfile์ด๋ผ๋Š” ๊ฐ์ฒด ์†์˜
'my favorite'์ด๋ผ๋Š” key๊ฐ’ ์†์˜
food๋ผ๋Š” ๊ฐ์ฒด ์†์˜
0๋ฒˆ์งธ ๋ฐฐ์—ด ์†์˜
name์ด๋ผ๋Š” key๊ฐ’
์— ์ ‘๊ทผํ•œ ๊ฒฐ๊ณผ๋ฅผ returnํ–ˆ๋‹ค!

๋ณด๋‹ค๋ณด๋‹ˆ ๊ฐ™์€ ๋Œ€๊ด„ํ˜ธ ์•ˆ์—์„œ๋„ ๊ทธ๋ƒฅ ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ๋œ๋  ์“ฐ์—ฌ์ง„ key์™€ ๋”ฐ์˜ดํ‘œ๋กœ ์จ์ง„ key์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ํ˜ผ๋™์ด์™”์–ด์„œ.. ๋‹ค์‹œ ์ •๋ฆฌํ•ด๋ด์•ผ๊ฒ ๋‹ด

โ™ฅ๏ธŽ ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ๋œ๋  ์žˆ๋Š” key๋Š” ์ด์ „์— ์„ค๋ช…ํ•œ ๋ฐ”์™€ ๊ฐ™์ด ๋ณ€์ˆ˜์ด๋ฆ„์„ ์ ์„ ๋•Œ๋งŒ! ๊ทธ๋ ‡๊ฒŒ ์“ฐ๋Š”๊ฑฐ๋‹ค.
ex. ๊ฐ์ฒด์ด๋ฆ„[๋ณ€์ˆ˜์ด๋ฆ„]

โ™ฅ๏ธŽ ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ๋”ฐ์˜ดํ‘œ ์†์— ์“ฐ์—ฌ์ง„ key๋Š” ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํฌํ•จํ•œ stringํ˜•์˜ key์ธ ๊ฒƒ์ด๋‹ค.
ex. ๊ฐ์ฒด์ด๋ฆ„['๋ฌธ์ž์—ด์ด๋ฆ„']

โ™ฅ๏ธŽ ์˜จ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์€ ์ •๋ง ๋”ฑ ํ•ด๋‹น key์˜ ์ด๋ฆ„๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ์ด๋ฆ„์„ ์ ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด๋‹ค! ๋„์–ด์“ฐ๊ธฐ๋Š” ํฌํ•จ๋  ์ˆ˜ ์—†๋‹ค.
ex. ๊ฐ์ฒด์ด๋ฆ„.์ •ํ™•ํ•œkey์ด๋ฆ„!




์•„์ฃผ ๊ธฐ์ดˆ์ ์ธ ๋‚ด์šฉ์ด์ง€๋งŒ
์ž๊พธ๋งŒ ํ—ท๊ฐˆ๋ฆฌ๋Š”๊ฑธ~~
๋ชป์‚ด์•„

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