JS Array
Table of contents
๋ฐฐ์ด์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์๋ฃ ๊ตฌ์กฐ, ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์๋ ๋ด์ฅ๋ ๋ฉ์๋๊ฐ ๋ง๋ค.
๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋์ผํ ์ข
๋ฅ์ ๋ฐฐ์ด ์ฐ์ฐ์ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ์ํํ ์ ์๋ค.
์ฝ์
.push()
arr.push(element)
- ์๋ก์ด ํญ๋ชฉ์ ๋ฐฐ์ด ๋์ ์ถ๊ฐ
- ์๊ฐ ๋ณต์ก๋: O(1)
์ญ์
.pop()
arr.pop(element)
- ๋ง์ง๋ง ํญ๋ชฉ์ ๋ฐฐ์ด์์ ์ ๊ฑฐ, ์ ๊ฑฐ๋ ํญ๋ชฉ์ ๋ฐํ
- ์๊ฐ ๋ณต์ก๋: O(1)
.shift()
arr.shift(element)
- ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ๋ฐฐ์ด์์ ์ ๊ฑฐ, ์ ๊ฑฐ๋ ํญ๋ชฉ์ ๋ฐํ
- ์๊ฐ ๋ณต์ก๋: O(1)
์ ๊ทผ
์ ๊ทผ ์ฐ์ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ก๋ถํฐ ์ง์ ๊ฐ์ ์ป๊ธฐ ๋๋ฌธ์ O(1) ์๊ฐ ๋ณต์ก๋๋ฅผ ์ง๋๋ค.
๋ฐ๋ณต
์๋ฃ ๊ตฌ์กฐ ๋ด์ ๋ด๊ธด ํญ๋ชฉ๋ค์ ํ๋์ฉ ์ ๊ทผํ๋ ๊ณผ์ , ํด๋น ๋ฐฉ๋ฒ๋ค์ ๋ชจ๋ O(n)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ง๋๋ค.
for(๋ณ์; ์กฐ๊ฑด; ์์ )
graph TDA((์์)) --> B[์ด๊ธฐํ]B --> C{์กฐ๊ฑด}C -- false --> D((์ข ๋ฃ))C -- true --> E[๋ช ๋ น๋ฌธ]E --> F[์์ ]F --> C
while(์กฐ๊ฑด)
- ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์ฐ ๋ฐ๋ณต ๋ฌธ ์ข ๋ฃ, ๊ณ์๊ธฐ๋ ๋ฃจํ์ ๋ฐ๊นฅ์์ ์ด๊ธฐํ ๋์ด์ผ ํ๋ค.
for(๋ณ์ in ๋ฐฐ์ด)
- ๋ฐฐ์ด์ ๊ธธ์ด ๋งํผ ์ธ๋ฑ์ค๋ฅผ ํ๋์ฉ ํธ์ถํ๋ค. in ์์ ๋ณ์๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค ์ด๋ค.
for(๋ณ์ of ๋ฐฐ์ด)
- ๋ฐฐ์ด์ ๊ธธ์ด ๋งํผ ํ๋์ฉ ํธ์ถํ๋ค. of ์์ ๋ณ์๋ ํด๋น ๋ฐฐ์ด ํญ๋ชฉ์ ๊ฐ์ด๋ค.
forEach()
- ๋ค๋ฅธ ๋ฐ๋ณต ๋ฐฉ๋ฒ๊ณผ ๋ค๋ฅด๊ฒ ๋ฐ๋ณต ๋ฐ๊นฅ์ผ๋ก ๋น ์ ธ๋์ค๊ฑฐ๋ ๋ฐฐ์ด ๋ด ํน์ ํญ๋ชฉ๋ค์ ๊ฑด๋๋ธ ์ ์๋ค.
- ๊ฐ ํญ๋ชฉ์ ๋ชจ๋ ์ ๊ทผํ๋ค๋ ์๋ฏธ์ ์์ด ์ข ๋ ๋ช ์์ ์ด๋ค.
๋์ ํจ์
.slice()
arr.slice(begin, end)
- ๊ธฐ์กด ๋ฐฐ์ด์ ์์ ํ์ง ์๊ณ ํด๋น ๋ฐฐ์ด์ ์ผ๋ถ๋ฅผ ๋ฐํํ๋ค.
- (์์ ์ธ๋ฑ์ค, ๋ ์ธ๋ฑ์ค) ๋ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋๋ค.
- ์์ ์ธ๋ฑ์ค๋ง ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ ๊ฒฝ์ฐ ๋ ์ธ๋ฑ์ค๋ ํด๋น ๋ฐฐ์ด์ ์ธ๋ฑ์ค ์ต๋๊ฐ์ผ๋ก ๊ฐ์ ํ๋ค.
- ๋งค๊ฐ๋ณ์๋ก ์๋ฌด๊ฒ๋ ์ ๋ฌํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ๋ณต์ฌ๋ณธ์ ๋ฐํํ๋ค. (๊น์ ๋ณต์ฌ)
- ์๊ฐ ๋ณต์ก๋: O(n) <--๋ํผ์
.from()
Array.from(arrayLike[, mapFn[, thisArg]])
- ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด(array-like object)๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด(iterable object)๋ฅผ ์์ ๋ณต์ฌํ์ฌ
์๋ก์ด Array ๊ฐ์ฒด ์์ฑ - n๊ฐ์ ํญ๋ชฉ์ ๋ณต์ฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ O(n) ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค.
.splice()
arr.splice(begin, size, element1, element2...)
- ๊ธฐ์กด ํญ๋ชฉ์ ์ ๊ฑฐํ๊ฑฐ๋ ์ ๊ท ํญ๋ชฉ์ ์ถ๊ฐํจ์ผ๋ก์จ ๋ฐฐ์ด์ ๋ด์ฉ์ ๋ณ๊ฒฝํ๊ณ ๋ฐํํ๋ค.
- (์์ ์ธ๋ฑ์ค, ์ ๊ฑฐํ ํญ๋ชฉ์ ํฌ๊ธฐ(๊ธธ์ด, ๊ฐฏ์), ์ถ๊ฐํ ์ ๊ท ํญ๋ชฉ...) ์ธ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋๋ค.
- ์๋ก์ด ํญ๋ชฉ๋ค์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์์ ์ง์ ํ ์์น์ ์ถ๊ฐ๋๋ค.
- ์ ๊ฑฐ๋ ํญ๋ชฉ๋ค์ ๋ฐํ
- ์๊ฐ ๋ณต์ก๋: ์ต์ ์ ๊ฒฝ์ฐ O(n)
.concat()
- ์ ๊ท ํญ๋ชฉ์ ๋ฐฐ์ด์ ๋งจ ๋ค์ ์ถ๊ฐํ๊ณ ํด๋น ๋ฐฐ์ด์ ๋ฐํํ๋ค.(๋ฐฐ์ด๊ณผ ๋ฐฐ์ด์ ์ฐ๊ฒฐํ๋ค)
- ์๋ณธ ๋ฐฐ์ด์ ์์ ํ์ง ์๋๋ค.(์์ ๋ณต์ฌ)
.length
์์ฑ
- ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ฐํํ๋ค.
- ํด๋น ์์ฑ์ ๋ ์์ ํฌ๊ธฐ๋ก ๋ณ๊ฒฝํ๋ฉด ๋ฐฐ์ด์์ ํญ๋ชฉ๋ค์ด ์ ๊ฑฐ๋๋ค.
...
์ ๊ฐ ์ฐ์ฐ์
- ์ ๋ก ์ธ์(zero arguments)๊ฐ ๊ธฐ๋๋๋ ๊ณณ์์ ์ธ์๋ฅผ ํ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
- ๋ฐฐ์ด์ ๊น์ ๋ณต์ฌํ ๋ ์์ฉ ํ ์๋ ์๋ค.
Math.max
, Math.min
- ๋ฌดํ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋๋ค.
- ์ ๊ฐ ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉํด์ ๋ฐฐ์ด์ ์ต๋๊ฐ, ์ต์๊ฐ์ ์ฐพ์ ์ ์๋ค.
// ๋ฐฐ์ด ์ ์ต๋๊ฐMath.max(...Array);// ๋ฐฐ์ด ์ ์ต์๊ฐMath.min(...Array);
์๋ฐ์คํฌ๋ฆฝํธ ํจ์ํ ๋ฐฐ์ด ๋ฉ์๋ (๊ณ ์ฐจ ํจ์)
.map()
arr.map(function( value ){})
- ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ ํจ์ ๋ณํ์ ๋ฐฐ์ด์ ๋ชจ๋ ํญ๋ชฉ์ ์ ์ฉํ๊ณ ๋ณํ๋ ํญ๋ชฉ๋ค์ ํฌํจํ๋ ์ ๊ท ๋ฐฐ์ด์ ๋ฐํํ๋ค.
- ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์๋๋ค.
.filter()
arr.filter(function( value ){})
- ๋ฐฐ์ด ๋ด ํญ๋ชฉ๋ค ์ค ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ ๋จ๋ ์กฐ๊ฑด์ ์ค์กฑ์ํค๋ ๋ฐฐ์ด๋ค๋ง ๋ฐํํ๋ค.
- ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์๋๋ค.
.reduce()
arr.reduce(function( prevVal, currentVal, index, array ){}, initialVal)
- ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ ๋ณํ ํจ์๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ๋ชจ๋ ํญ๋ชฉ์ ํ๋์ ๊ฐ์ผ๋ก ๊ฒฐํฉํ๋ค.
- initialValue๋ฅผ ๋ ๋ฒ์งธ ์ธ์๋ก ๋ฐ์ ์ ์๋ค. ํด๋น ์ธ์๋ ๊ฐ์ ๊ฐ์ ์ด๊ธฐํ ํ๋ค.
- ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์๋๋ค.