07. Array

์œ„์ฝ”๋“œ ์‚ฌ์ „ ์Šคํ„ฐ๋””๋ฅผ ๋“ฃ๊ณ  ์“ฐ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.
์ˆ˜์—… ๋‚ด์šฉ์„ ์ฐธ๊ณ /์ธ์šฉํ•˜์—ฌ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

Array๋ž€?


๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
์ง€๋‚œ๋ฒˆ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์—์„œ ํ•œ๋ฒˆ ๋ณธ ์นœ๊ตฌ์ž…๋‹ˆ๋‹ค.

let sample = [data1, ๋ฐ์ดํ„ฐ2, true, 0.5];

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด์€ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜์˜ ์ง‘ํ•ฉ์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€๋Ÿ‰์œผ๋กœ ์—ฐ์‚ฐํ•  ๋•Œ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ 1๋ถ€ํ„ฐ 100๊ฐœ๊นŒ์ง€ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ด ๋ณ€์ˆ˜๋“ค์„ ์ „๋ถ€ ๋”ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?
์‹ฌ์ง€์–ด ์ด ๊ฐ’๋“ค์ด ์ˆซ์ž์™€ ๋ฌธ์ž์™€ ๋ถˆ๋ฆฐ ๊ฐ’๋“ค์ด ์ „๋ถ€ ์„ž์—ฌ์žˆ๋‹ค๋ฉด?

let variable1 = '1';
let variable2 = '๋ณ€์ˆ˜ 2';
let variable3 =  false;
.
.
.


3๊ฐœ๋งŒ ์ผ๋Š”๋ฐ๋„ ๋ฒŒ์จ ํž˜๋“ค์–ด์š”!
์ด๊ฒƒ์„ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”์„œ ์“ฐ๋ฉด, ์ ์–ด๋„ let ์„ ์–ธ์„ ํ•œ๋ฒˆ๋งŒ ํ•ด์ค€๋‹ค๋Š” ์ ์—์„œ ๊ต‰์žฅํžˆ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

let variable = [1, '๋ณ€์ˆ˜ 2', false];

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

๋ฐฐ์—ด ์—˜๋ฆฌ๋จผํŠธ์— ์ ‘๊ทผํ•˜๊ธฐ

๋ฐฐ์—ด ๋Œ€๊ด„ํ˜ธ์— ๋“ค์–ด์žˆ๋Š” ์ € ๋ฐ์ดํ„ฐ๋“ค์„ ์š”์†Œ,element๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๋“ค์„ ์ผ๋ ฌ๋กœ ์„ธ์›Œ๋‘” ๊ฑด ์ข‹์€๋ฐ, ์ด์ œ ์ € ์นœ๊ตฌ๋“ค์„ ๋ถˆ๋Ÿฌ์„œ ์–ด๋–ป๊ฒŒ๋“  ์จ๋จน์–ด์•ผ๊ฒ ์ฃ ?
์ผ๋‹จ ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด๋ณผ๊ฒŒ์š”.

let zoo = ['ํ˜ธ๋ž‘์ด','๊ธฐ๋ฆฐ','์ฝ”๋ฟ”์†Œ','ํ† ๋ผ']

๋™๋ฌผ์›์— ๋†€๋Ÿฌ์™€์„œ ํ† ๋ผ๋ฅผ ๋จผ์ € ๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ•œ๊ฐ€์ง€ ํŠน์ดํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ˆœ์„œ๋ฅผ index๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด index๋Š” 0๋ฒˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๊ฒ๋‹ˆ๋‹ค.

let zoo = ['ํ˜ธ๋ž‘์ด','๊ธฐ๋ฆฐ','์ฝ”๋ฟ”์†Œ','ํ† ๋ผ']
//์ˆœ์„œ๋Œ€๋กœ 0,1,2,3๋ฒˆ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

์—ฌ๊ธฐ์„œ ํ† ๋ผ๋ฅผ ๋ถˆ๋Ÿฌ์™€๋ณธ๋‹ค๋ฉด,

console.log(zoo[3]);
let rabbit = zoo[3];

์ด ๋˜๊ฒ ๋„ค์š”. ๋ฌผ๋ก  ์•„๋žซ์ค„์ฒ˜๋Ÿผ ๋ณ€์ˆ˜์—๋„ ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐ์—ด ์—˜๋ฆฌ๋จผํŠธ ์ˆ˜์ •ํ•˜๊ธฐ

๋™๋ฌผ์›์—์„œ ์ฝ”๋ฟ”์†Œ ๋Œ€์‹  ์‚ฌ๋ง‰์—ฌ์šฐ๋ฅผ ๋Œ€์‹  ๋“ค์—ฌ์˜ค๊ธฐ๋กœ ํ•˜์˜€์–ด์š”.
์ฝ”๋ฟ”์†Œ๋Š” ์ธ๋ฑ์Šค 2๋ฒˆ์ด๋‹ˆ๊นŒ, 2๋ฒˆ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

zoo[2] = '์‚ฌ๋ง‰์—ฌ์šฐ';

๊ฐ„๋‹จํžˆ ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐ์—ด ์—˜๋ฆฌ๋จผํŠธ ์ถ”๊ฐ€ํ•˜๊ธฐ

์—ฌ๊ธฐ์„œ ๋™๋ฌผ ํ•˜๋‚˜๋ฅผ ๋” ๋“ค์—ฌ์˜ฌ ์ˆ˜ ์žˆ์„๊นŒ์š”?๋ฌผ๋ก  ๋ฉ๋‹ˆ๋‹ค.
์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” unshift์™€.push ์ธ๋ฐ, push๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฐฐ์—ด ๋งจ ๋งˆ์ง€๋ง‰์— ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

zoo.push('ํŽญ๊ท„');
console.log(zoo);
//Array(5) [ "ํ˜ธ๋ž‘์ด", "๊ธฐ๋ฆฐ", "์‚ฌ๋ง‰์—ฌ์šฐ", "ํ† ๋ผ" ,"ํŽญ๊ท„"]

5๋ฒˆ์งธ ๋™๋ฌผ,์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋กœ๋Š” 4๋ฒˆ์ธ ํŽญ๊ท„์ด ์ƒˆ๋กœ ๋“ค์–ด์˜จ ๋ชจ์Šต์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐ์—ด ์—˜๋ฆฌ๋จผํŠธ ์‚ญ์ œํ•˜๊ธฐ

์–ด๋Š๋‚  ๋™๋ฌผ์›์—์„œ ์ด๋ฒคํŠธ๋ฅผ ์œ„ํ•ด ํ† ๋ผ๋ฅผ ์ž ์‹œ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.
์‚ญ์ œ์—๋Š” ๋ณด๋‹ค ๋งŽ์€ ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

pop();//ํ•ญ์ƒ ๋งจ ๋งˆ์ง€๋ง‰ index์— ์žˆ๋Š” ์—˜๋ฆฌ๋จผํŠธ ์‚ญ์ œ

shift();//ํ•ญ์ƒ ๋งจ ์ฒซ๋ฒˆ์งธ(0๋ฒˆ index)์— ์žˆ๋Š” ์—˜๋ฆฌ๋จผํŠธ ์‚ญ์ œ

splice(start[, deleteCount[, item1[, item2[, ...]]]]
//n๋ฒˆ์งธ index๋ถ€ํ„ฐ n๋ฒˆ์งธ index๊นŒ์ง€ ์˜์—ญ์„ ์ง€์ •ํ•˜์—ฌ ์‚ญ์ œ

์—ฌ๊ธฐ์„œ ํ† ๋ผ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ์˜ ๋™๋ฌผ์ด์—ˆ๋‹ค๋ฉด pop์„ ์ด์šฉํ•ด ์ž๋ฆฌ๋ฅผ ๋น„์šฐ๋ฉด ๋˜์—ˆ๊ฒ ์ง€๋งŒ ์•ˆ๋˜๋„ค์š”! ๊ทธ๋ž˜์„œ splice๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋ณด๊ธฐ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

start ์ง€์ ์—๋Š” ๋ฐฐ์—ด์˜ ๋ณ€๊ฒฝ์„ ์‹œ์ž‘ํ•  ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.
deleteCount ์ง€์ ์—๋Š” ๋ฐฐ์—ด์—์„œ ์ œ๊ฑฐํ•  ์š”์†Œ์˜ ์ˆ˜๋ฅผ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค. 0 ์ดํ•˜์˜ ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฉด ์–ด๋–ค ์š”์†Œ๋„ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

zoo.splice(-2,1)//์Œ์ˆ˜๋กœ ์‹œ์ž‘์„ ์ง€์ •ํ•˜๋Š” ๋ฒ•.๋ฐฐ์—ด์˜ ๋์—์„œ๋ถ€ํ„ฐ 2๋ฒˆ์งธ์ธ ํ† ๋ผ๋ฅผ ์„ ํƒํ•ด ์‚ญ์ œ
zoo.splice(3,1)//์–‘์ˆ˜๋กœ ์‹œ์ž‘์„ ์ง€์ •ํ•˜๋Š” ๋ฒ• ๋ฐฐ์—ด์˜ ์ฒ˜์Œ์—์„œ๋ถ€ํ„ฐ 3๋ฒˆ์งธ์ธ ํ† ๋ผ๋ฅผ ์„ ํƒํ•ด ์‚ญ์ œ

console.log(zoo);//Array(4) [ "ํ˜ธ๋ž‘์ด", "๊ธฐ๋ฆฐ", "์ฝ”๋ฟ”์†Œ", "ํŽญ๊ท„" ] ํ† ๋ผ ์ž๋ฆฌ๊ฐ€ ์‚ญ์ œ๋˜์—ˆ์–ด์š”..


//๋ฐฐ์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ํฐ ์ˆ˜์ผ ๋•Œ์—๋Š”
zoo.splice(8)
zoo.splice(7,3)
//์•„๋ฌด๊ฒƒ๋„ ์‚ญ์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๋ฒคํŠธ๊ฐ€ ๋๋‚˜ ๋™๋ฌผ์›์— ๋Œ์•„์˜จ ํ† ๋ผ๊ฐ€, ์ž์‹ ์˜ ์ž๋ฆฌ๊ฐ€ ์—†์–ด์ง„ ๊ฒƒ์„ ๋ณด์ž ๋‚™์‹ฌํ•ฉ๋‹ˆ๋‹ค.

ํ† ๋ผ์—๊ฒŒ ์‚ฌ๊ณผํ•˜๊ณ  ๋‹ค์‹œ ์ž๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ๊ฒ ๋„ค์š”. ์ด๋ฒˆ์—๋„ splice๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

zoo.splice(3,0,'ํ† ๋ผ')//์ฒ˜์Œ์—์„œ๋ถ€ํ„ฐ 3๋ฒˆ์งธ ์ž๋ฆฌ์—, 0์„ ๋„ฃ์–ด ์•„๋ฌด๊ฒƒ๋„ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  'ํ† ๋ผ'๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ item ์ž๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ๋ฉด, ๊ตณ์ดpush ๋ฉ”์†Œ๋“œ๋ฅผ ์“ฐ์ง€ ์•Š๊ณ ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์‚ฌ์ดํŠธ : https://im-developer.tistory.com/103

๋‹ค์ฐจ์› ๋ฐฐ์—ด

๋ฐฐ์—ด ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ๋ฐฐ์—ด์ด ์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
๋™๋ฌผ์›์—์„œ ํ˜ธ๋ž‘์ด๊ฐ€ ์ƒˆ๋ผ๋ฅผ ๋‚ณ์•˜๋‹ค๊ณ  ํ•ด ๋ณผ๊นŒ์š”?

let zoo = [["ํ˜ธ๋ž‘์ด1","ํ˜ธ๋ž‘์ด2","ํ˜ธ๋ž‘์ด3"],"๊ธฐ๋ฆฐ", "์ฝ”๋ฟ”์†Œ", "ํ† ๋ผ", "ํŽญ๊ท„" ]
zoo[0] = Array(3) [ "ํ˜ธ๋ž‘์ด1", "ํ˜ธ๋ž‘์ด2", "ํ˜ธ๋ž‘์ด3" ]

์—ฌ๊ธฐ์„œ ํ˜ธ๋ž‘์ด3 ์ด๋ผ๋Š” ์š”์†Œ์— ์ ‘๊ทผํ•  ๋•Œ๋Š”

zoo[0][2]//0๋ฒˆ์งธ index ์—˜๋ฆฌ๋จผํŠธ์—์„œ 2๋ฒˆ์งธ index ์—˜๋ฆฌ๋จผํŠธ

์ด๋ ‡๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

๋ฐฐ์—ด์˜ ๊ธฐ๋ณธ๋งŒ ํ•˜๋ ค ํ–ˆ๋Š”๋ฐ ์–‘์ด ๋„ˆ๋ฌด ๋งŽ์•„์ง„ ๋Š๋‚Œ์ด๋„ค์š”..
๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” slice ๋ฉ”์†Œ๋“œ๋Š” ๋‚˜์ค‘์— ์ ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ