๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Programming/Javascript

[์ธ์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ์—ฐ์‚ฐ์ž 5 - ๋ฐฐ์—ด 2

๋ฐฐ์—ด

๋ฐฐ์—ด์˜ ํ”„๋กœํผํ‹ฐ ๋™์  ์ƒ์„ฑ

๋ฐฐ์—ด๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์ด๋ฏ€๋กœ, ์ธ๋ฑ์Šค๊ฐ€ ์ˆซ์ž์ธ ๋ฐฐ์—ด ์›์†Œ ์ด์™ธ์—๋„ ๊ฐ์ฒด์ฒ˜๋Ÿผ ๋™์ ์œผ๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

  • ๋™์  ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ length ๊ฐ’์€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค. ๋ฐฐ์—ด์˜ length ํ”„๋กœํผํ‹ฐ๋Š” ๋ฐฐ์—ด ์›์†Œ์˜ ๊ฐ€์žฅ ํฐ ์ธ๋ฑ์Šค๊ฐ€ ๋ณ€ํ–ˆ์„ ๊ฒฝ์šฐ๋งŒ ๋ณ€๊ฒฝ๋œ๋‹ค.

๋ฐฐ์—ด์˜ ํ”„๋กœํผํ‹ฐ ์—ด๊ฑฐ

๊ฐ์ฒด๋Š” for in ๋ฌธ์œผ๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ์—ด๊ฑฐํ•œ๋‹ค. ๋ฐฐ์—ด๋„ ๊ฐ์ฒด์ด๋ฏ€๋กœ for in ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด ๋‚ด์˜ ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ๋ฅผ ์—ด๊ฑฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ถˆํ•„์š”ํ•œ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋˜๋„๋ก for ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

 

๋ฐฐ์—ด ์š”์†Œ ์‚ญ์ œ

๋ฐฐ์—ด๋„ ๊ฐ์ฒด์ด๋ฏ€๋กœ, ๋ฐฐ์—ด ์š”์†Œ๋‚˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐ delete ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

  • delete arr[2]๋กœ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋ฉด, arr[2]์— undefined๊ฐ€ ํ• ๋‹น๋˜๋ฉฐ, delete ์—ฐ์‚ฐ์ž๋กœ ๋ฐฐ์—ด ์š”์†Œ ์‚ญ์ œ ํ›„์—๋„ ๋ฐฐ์—ด์˜ length ๊ฐ’์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ฆ‰, delete ์—ฐ์‚ฐ์ž๋Š” ํ•ด๋‹น ์š”์†Œ์˜ ๊ฐ’์„ undefined๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์„ ๋ฟ ์›์†Œ ์ž์ฒด๋ฅผ ์‚ญ์ œํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๋•Œ๋ฌธ์— ๋ณดํ†ต ๋ฐฐ์—ด์—์„œ ์š”์†Œ๋“ค์„ ์™„์ „ํžˆ ์‚ญ์ œํ•  ๊ฒฝ์šฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” splice() ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

* splice() ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ

- splice(start, deleteCount, item ...)

- start : ๋ฐฐ์—ด์—์„œ์˜ ์‹œ์ž‘ ์œ„์น˜

- deleteCount : start๊ฐ€ ์ง€์ •ํ•œ ์‹œ์ž‘ ์œ„์น˜๋ถ€ํ„ฐ ์‚ญ์ œํ•  ์š”์†Œ์˜ ์ˆ˜

- item : ์‚ญ์ œํ•  ์œ„์น˜์— ์ถ”๊ฐ€ํ•  ์š”์†Œ

 

Array() ์ƒ์„ฑ์ž ํ•จ์ˆ˜

๋ฐฐ์—ด์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด๋กœ ์ƒ์„ฑํ•˜์ง€๋งŒ, ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด๋„ ๊ฒฐ๊ตญ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ณธ ์ œ๊ณต Array() ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ๋‹จ์ˆœํ™”์‹œํ‚จ ๊ฒƒ์ด๋‹ค. 

Array() ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœํ•  ๋•Œ ์ธ์ž ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋™์ž‘์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. 

  • ํ˜ธ์ถœํ•  ๋•Œ ์ธ์ž๊ฐ€ 1๊ฐœ์ด๊ณ , ์ˆซ์ž์ผ ๊ฒฝ์šฐ : ํ˜ธ์ถœ๋œ ์ธ์ž๋ฅผ length๋กœ ๊ฐ–๋Š” ๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑ
  • ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ : ํ˜ธ์ถœ๋œ ์ธ์ž๋ฅผ ์š”์†Œ๋กœ ๊ฐ–๋Š” ๋ฐฐ์—ด ์ƒ์„ฑ

 

์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด

๋ฐฐ์—ด์˜ length ํ”„๋กœํผํ‹ฐ๋Š” ๋ฐฐ์—ด์˜ ๋™์ž‘์— ์žˆ์–ด์„œ ์ค‘์š”ํ•œ ํ”„๋กœํผํ‹ฐ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋งŒ์•ฝ ์ผ๋ฐ˜ ๊ฐ์ฒด์— length๋ผ๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ length ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด(array-like objects)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

์œ ์‚ฌ๋ฐฐ์—ด๊ฐ์ฒด์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ๊ฐ์ฒด์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

  • ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด์ธ obj๋Š” ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋ฐ”๋กœ push() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ apply() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…์‹œ์  this ๋ฐ”์ธ๋”ฉ์„ ์ด์šฉํ•˜๋ฉด ๊ฐ์ฒด์ง€๋งŒ ํ‘œ์ค€ ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.