๋ฐฐ์ด
๋ฐฐ์ด์ ํ๋กํผํฐ ๋์ ์์ฑ
๋ฐฐ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ด๋ฏ๋ก, ์ธ๋ฑ์ค๊ฐ ์ซ์์ธ ๋ฐฐ์ด ์์ ์ด์ธ์๋ ๊ฐ์ฒด์ฒ๋ผ ๋์ ์ผ๋ก ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
- ๋์ ํ๋กํผํฐ๊ฐ ์ถ๊ฐ๋ ๊ฒฝ์ฐ ๋ฐฐ์ด์ 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 ๋ฐ์ธ๋ฉ์ ์ด์ฉํ๋ฉด ๊ฐ์ฒด์ง๋ง ํ์ค ๋ฐฐ์ด ๋ฉ์๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.