/
๐Ÿ“™

JS Array

JavaScript
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(๋ณ€์ˆ˜; ์กฐ๊ฑด; ์ˆ˜์ •)

mermaid
graph TD
A((์‹œ์ž‘)) --> 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

  • ๋ฌดํ•œ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›๋Š”๋‹ค.
  • ์ „๊ฐœ ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด์˜ ์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
javascript
// ๋ฐฐ์—ด ์•ˆ ์ตœ๋Œ“๊ฐ’
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๋ฅผ ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ์ธ์ž๋Š” ๊ฐ์†Œ ๊ฐ’์„ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.
  • ์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.
logo
Things I've Learned