๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/Code-States

[D+04] ๋ฐฐ์—ด๊ณผ ๊ฐ์ฒด

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2020. 9. 10.

 

 

D+04

-  ๋ฐฐ์—ด๊ณผ ๊ฐ์ฒด -

(๋ฐฐ์—ด, ๊ฐ์ฒด)

 


 

 

๋ฐฐ์—ด

 ๋ฐฐ์—ด์€ ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๊ฐ’์œผ๋กœ '๊ฐ’'์„ ๋‚˜ํƒ€๋‚ด๋Š” ์š”์†Œ ์—˜๋ฆฌ๋จผํŠธ(element)์™€ '์ˆœ์„œ'๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ธ๋ฑ์Šค(index)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

 

์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

 

๋ฐฐ์—ด ์•ˆ์— ๋ฐฐ์—ด์„ ๋„ฃ์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (๋‹ค์ฐจ์› ๋ฐฐ์—ด)

 

 

๋ฐฐ์—ด ์„ ์–ธ

•๋ฐฐ์—ด์€ ๋Œ€๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด ๋‚˜ํƒ€๋‚ด๋ฉฐ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ตฌ๋ถ„ ์ง“๊ธฐ ์œ„ํ•ด ์‰ผํ‘œ(,)๋ฅผ ์‚ฌ์šฉํ•ด ์ค€๋‹ค.

 

• ๋ฐฐ์—ด์€ ์ˆœ์„œ๊ฐ€ ์žˆ๊ธฐ ๋–„๋ฌธ์— ์ธ๋ฑ์Šค ๊ฐ’ ์ˆœ์ฐจ์ ์œผ๋กœ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.

 

๋Œ€๊ด„ํ˜ธ([])๋ฅผ ์‚ฌ์šฉํ•ด ์—ด์–ด์ฃผ๊ณ  ๋‹ซ์•„์ค€๋‹ค.

 

 

๋ฐฐ์—ด ํ™œ์šฉํ•˜๊ธฐ

• ๋ฐฐ์—ด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

oddNumber[1]; // oddNumber๋ผ๋Š” ๋ฐฐ์—ด์˜ 1๋ฒˆ์งธ ์ธ๋ฑ์Šค๊ฐ€ ๋จธ์•ผ? --> 3

 

•๋ฐฐ์—ด ๊ฐ’ ๋ณ€๊ฒฝ

oddNumber[1] = 300; // oddNumber๋ผ๋Š” ๋ฐฐ์—ด 1๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ 300์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜

 

 

arr.length

• ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์•Œ์•„๋‚ด๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

oddNumber.length; // oddNumber๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ์–ผ๋งˆ์•ผ? ---> 5

 

 

๋ฐฐ์—ด์˜ ์ถ”๊ฐ€์™€ ์‚ญ์ œ

• arr.push(element) : ๋ฐฐ์—ด ๋งˆ์ง€๋ง‰์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

oddNumber.push(11); //oddNumber๋ผ๋Š” ๋ฐฐ์—ด ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— 11์ด๋ผ๋Š” ๊ฐ’ ๋„ฃ์–ด์ค˜

 

• arr.pop() : ๋ฐฐ์—ด ๋งˆ์ง€๋ง‰์— ์š”์†Œ ์‚ญ์ œํ•˜๊ธฐ

oddNumber.pop(); //oddNumber๋ผ๋Š” ๋ฐฐ์—ด ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•ด์ค˜

 

• arr.unshift(element) :๋ฐฐ์—ด ์ฒซ ๋ฒˆ์งธ์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

oddNumber.unshift(11); //oddNumber๋ผ๋Š” ๋ฐฐ์—ด ๋งจ ์•ž์— 11์ด๋ผ๋Š” ๊ฐ’ ๋„ฃ์–ด์ค˜

 

• arr.unshift() : ๋ฐฐ์—ด ์ฒซ ๋ฒˆ์งธ์— ์š”์†Œ ์‚ญ์ œํ•˜๊ธฐ

oddNumber.shift(); //oddNumber๋ผ๋Š” ๋ฐฐ์—ด ๋งจ ์•ž ์š”์†Œ๋ฅผ ์‚ญ์ œํ•ด์ค˜

 

 

Array.isArray( obj )

๊ธฐ์กด์— ๊ฐ’๋“ค์˜ ํƒ€์ž…์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๋Š” 'typeof(operand)'๋ฅผ ์‚ฌ์šฉํ•ด ์™”๋‹ค.

 

ํ•˜์ง€๋งŒ typeof์— ๋ฐฐ์—ด์„ ์ž…๋ ฅํ•˜๋ฉด 'object'๋ผ๋Š” ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.

 

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Array.isArray(obj)๋ฅผ ์‚ฌ์šฉํ•ด ์ค€๋‹ค๋ฉด ์•ˆ์— ๋„ฃ์€ ์˜ค๋ธŒ์ ํŠธ ๊ฐ’์ด ๋ฐฐ์—ด์ธ์ง€ ์•„๋‹Œ์ง€ true์™€ false๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

 

๋ฐฐ์—ด์˜ ์กด์žฌ์—ฌ๋ถ€ ํ™•์ธํ•˜๊ธฐ

• arr.indexOf(element)

ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๋ฐฐ์—ด์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋กœ

ํ•ด๋‹น ๊ฐ’์ด ์žˆ์„ ๊ฒฝ์šฐ์—” ๋ฐฐ์—ด์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๊ณ  ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ์—” '-1'์ด ๋‚˜์˜จ๋‹ค.

 

•arr.includes(element)

ํ•ด๋‹น ๋ฐฐ์—ด์ด ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉด true๋ฅผ

ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋‚ด๋ณด๋‚ธ๋‹ค.

 

์ฝ˜์†” ์ฐฝ์—์„œ ๋ฐฐ์—ด์„ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฒ•

• ๊ธฐ์กด์— ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ ๋ฐฉ์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ…Œ์ด๋ธ” ํ˜•์‹์œผ๋กœ ๋ฐฐ์—ด์„ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด ์ฝ˜์†” ์ฐฝ์— console.table(arr)๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 


๊ฐ์ฒด

ํ•œ ๊ฐ€์ง€ ๋Œ€์ƒ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€์ˆ˜๊ฐ€ ๋‚˜์˜ฌ ๊ฒฝ์šฐ์— ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ์–‘์ด ๋งŽ์•„์งˆ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ ๋ณ€์ˆ˜๋Š” ๋ณ€์ˆ˜๋ช…๋งŒ ๊ฐ™์„ ๋ฟ ์—ฐ๊ด€์„ฑ์ด ์ „ํ˜€ ์—†๋‹ค.

 

๋˜ํ•œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์—ˆ์„ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค์™€ ์—˜๋ฆฌ๋จผํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€๋ฅผ ์•Œ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’๋“ค์„ ํ•œ๋ฒˆ์— ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ’๋“ค์ด ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

๊ฐ์ฒด์˜ ์„ ์–ธ

• ๊ฐ์ฒด๋Š” ํ‚ค์™€ ๊ฐ’ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ์Œ๋“ค์„ ๊ตฌ๋ถ„ ์ง“๊ธฐ ์œ„ํ•ด ์‰ผํ‘œ(,)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

• ์ค‘๊ด„ํ˜ธ({})๋ฅผ ์‚ฌ์šฉํ•ด ์—ด์–ด์ฃผ๊ณ  ๋‹ซ์•„์ค€๋‹ค.

 

 

๊ฐ์ฒด์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

•Dot notation

user.name; // user๋ผ๋Š” ๊ฐ์ฒด์˜ ํ‚ค name์˜ ๊ฐ’์„ ๊ตฌํ•ด๋ผ ---> 'Jenny'

 

•Bracket notation

user['name']; // user๋ผ๋Š” ๊ฐ์ฒด์˜ ํ‚ค name์˜ ๊ฐ’์„ ๊ตฌํ•ด๋ผ ---> 'Jenny'

 

 

delete ๊ฐ์ฒด.ํ‚ค

•๊ฐ์ฒด ์•ˆ์— ์žˆ๋Š” key์™€ key์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์„ ์Œ์œผ๋กœ ์ œ๊ฑฐํ•ด ์ค€๋‹ค.

delete user.email; // user๊ฐ์ฒด์— ์žˆ๋Š” email์ด๋ผ๋Š” ํ‚ค์™€ ํ‚ค์•ˆ์— ์žˆ๋Š” ๊ฐ’ ์ œ๊ฑฐํ•ด ์ค˜

 

 

 

'key' in ๊ฐ์ฒด

•๊ฐ์ฒด ์•ˆ์— ํ•ด๋‹น ํ‚ค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ์ค€๋‹ค.

'name' in user; // user๋ผ๋Š” ๊ฐ์ฒด์— name์ด๋ผ๋Š” ํ‚ค๊ฐ€ ์žˆ๋‹ˆ? ---> true

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€