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

[JS] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ - ๋ฐฐ์—ด

by ํฌ๊ตฌ๋ฆฌ 2021. 2. 25.

๐Ÿ“Œ ๋ฐฐ์—ด(array)

๋ฐฐ์—ด์€ ์—ฌ๋Ÿฌ ์ž๋ฃŒ๋ฅผ ๋ฌถ์–ด์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ํ•œ ์ž๋ฃŒ๋‹ค.

 

๐Ÿ“Œ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ

[์š”์†Œ, ์š”์†Œ, ์š”์†Œ, ์š”์†Œ, ... , ์š”์†Œ]

๋ฐฐ์—ด์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€์ˆ˜๋ฅผ ํ•œ ๋ฒˆ์— ์„ ์–ธํ•ด ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค.

๋Œ€๊ด„ํ˜ธ[...]๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ์„ฑํ•˜๊ณ  ๋‚ด๋ถ€์˜ ๊ฐ’์„ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•ด ์ž…๋ ฅํ•œ๋‹ค.

๋ฐฐ์—ด ๋‚ด๋ถ€์— ๋“ค์–ด ์žˆ๋Š” ๊ฐ’์„ ์š”์†Œ(element)๋ผ๊ณ  ํ•œ๋‹ค.

์–ด๋– ํ•œ ์ข…๋ฅ˜์˜ ์ž๋ฃŒํ˜•๋„ ์š”์†Œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

 

const arr = [176, 'String', true, function () { }, {}, [123, 456]]

 

๐Ÿ“Œ ๋ฐฐ์—ด ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ

๋ฐฐ์—ด[์ธ๋ฑ์Šค]

๋ฐฐ์—ด์˜ ๊ธฐ๋ณธ์ ์ธ ์กฐ์ž‘์€ ๋ฌธ์ž์—ด๊ณผ ๋น„์Šทํ•˜๋‹ค. → ์ธ๋ฑ์Šค(index)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

const array = [279, 1013, 'SSAFY', 'AI', true, false]

console.log(array[0]); // 279
console.log(array[1]); // 1013
console.log(array[2]); // 'SSAFY'
console.log(array[3]); // 'AI'
console.log(array[4]); // true
console.log(array[5]); // false

 

๋ฐฐ์—ด์ด ์š”์†Œ์— ์ ‘๊ทผํ•˜์—ฌ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

array[0] = 0;
console.log(array[0]); // 0

 

๐Ÿ“Œ ๋ฐฐ์—ด ์š”์†Œ ๊ฐœ์ˆ˜ ํ™•์ธํ•˜๊ธฐ

๋ฐฐ์—ด.length

 

const name = ['Kim', 'Park', 'Lee', 'Choi']

name.length // 4

name[name.length - 1] // 'Choi'

 

โ€ป ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์„ ํƒํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด : arr.length - 1

cf) ํŒŒ์ด์ฌ : arr[-1]

๐Ÿ“Œ ๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

๋ฐฐ์—ด.push(์š”์†Œ)

 

const fruits = ['apple', 'banana', 'graph']

fruits.push('tomato')

console.log(fruits) // ['apple', 'banana', 'graph', 'tomato']

 

cf) ํŒŒ์ด์ฌ : arr.append(value)

 

(์ฃผ์˜)์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฐ์—ด ๋’ท๋ถ€๋ถ„์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” ๊ณ ์ •์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธธ์ด ์ด์ƒ์˜ ์ธ๋ฑ์Šค๋กœ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ค‘๊ฐ„์— ๋นˆ ์ž๋ฆฌ๋Š” empty๊ฐ€ ๋œ๋‹ค.

const temp = ['A', 'B', 'C']

temp[10] = 'Z'

console.log(temp) // ['A', 'B', 'C', empty x 7, 'Z']

 

๐Ÿ“Œ ๋ฐฐ์—ด ์š”์†Œ ์ œ๊ฑฐํ•˜๊ธฐ

๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ฑฐ
  2. ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ฑฐ

1. ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ฑฐ

๋ฐฐ์—ด.splice(์ธ๋ฑ์Šค, ์ œ๊ฑฐํ•  ์š”์†Œ์˜ ๊ฐœ์ˆ˜)
ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜์— 1์„ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค.
const brand = ['Samsung', 'LG', 'Apple']

brand.splice(2, 1) // 'Apple'

console.log(brand) // ['Samsung', 'LG']

cf) ํŒŒ์ด์ฌ : del arr[index]

 

2. ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ๊ฑฐ

const index = arr.indexOf(element)
arr.splice(index, 1)

indexOf() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด ๋‚ด๋ถ€์— ์š”์†Œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ๋ฆฌํ„ดํ•˜์ง€๋งŒ, ์ฐพ๊ณ ์ž ํ•˜๋Š” ์š”์†Œ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ -1์„ ๋ฆฌํ„ดํ•œ๋‹ค.

 

const alpha = ['A', 'B', 'C']

const index = alpha.indexOf('B')

index // 1

alpha.splice(index, 1) // 'B'

console.log(alpha) // ['A', 'C']

alpha.indexOf('B') // -1

 

โ€ป splice() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด ๋‚ด๋ถ€ ์š”์†Œ๋ฅผ ํ•˜๋‚˜๋งŒ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ, ๋ฐฐ์—ด ๋‚ด๋ถ€์—์„œ ํŠน์ • ๊ฐ’์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์œผ๋ฉด '๋ฐ˜๋ณต๋ฌธ' ๋˜๋Š” 'filter()' ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

const alpha = ['A', 'B', 'C', 'C', 'C']

alpha.filter((item) => item !== 'C')

alpha // ['A', 'B']

 

๐Ÿ“Œ ๋ฐฐ์—ด์˜ ํŠน์ • ์œ„์น˜์— ์š”์†Œ ์ถ”๊ฐ€ํ•˜๊ธฐ

arr.splice(index, 0, element)

splice() ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ํŠน์ • ์œ„์น˜์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•˜๊ณ , ์ œ๊ฑฐํ•  ๋•Œ๋„ ์‚ฌ์šฉํ•œ๋‹ค.

 

const alpha = ['A','C']

alpha.splice(1, 0, 'B')

alpha // ['A', 'B', 'C']

 


โ€ป ์ฐธ๊ณ ๋„์„œ : ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(ํ˜ผ๊ณต์Šค)

๋Œ“๊ธ€