๐ŸŒˆJS:Arrays

hojuneยท2023๋…„ 8์›” 21์ผ

Web Development

๋ชฉ๋ก ๋ณด๊ธฐ
14/34

๐ŸŒˆArrays

๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑ
let colors = [];

์—ฌ๋Ÿฌ ํƒ€์ž…์ด ์ž…๋ ฅ๋œ ๋ฐฐ์—ด
let stuff = [true, 68, 'cat', null];
              0     1    2      3
๊ฐ๊ฐ์˜ ์š”์†Œ๋Š” ์ƒ์‘ํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

js์—์„œ๋Š” ์—ฌ๋Ÿฌ ํƒ€์ž…(๋ถˆ๋ฆฌ์–ธ, ์ •์ˆ˜, ๋ฌธ์ž์—ด)์ด ํ•จ๊ป˜ ์žˆ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค

๋ฐฐ์—ด ์ž„์˜ ์ ‘๊ทผ
input stuff[0]
output "true"

input stuff[2][0]
output "c"

๋ฐฐ์—ด ์ˆ˜์ •
input stuff[1] = 'red'
input stuff
output [true, 'red, 'cat, null]
+) ๋ฌธ์ž์—ด์—์„œ๋Š” ํŠน์ • ๋ฌธ์ž๋ฅผ ๋ฐ”๊ฟ€์ˆ˜ ์—†๋‹ค

๐ŸŒˆArray Methods(Push, pop, shift, unshift)

Push = add to end

let stuff = [true, 68, 'cat', null];

input stuff.push('oliver','harry')
input stuff
output [true, 68, "cat", null,"oliver","harry"];

pop = remove from end

input stuff.pop()
output "harry"
input stuff
output [true, 68, "cat", null,"oliver"];


Shift = remove from start
Unshift = add to start

์ ์šฉ ์œ„์น˜๋งŒ ๋‹ค๋ฅด์ง€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๊ฐ™๋‹ค

๐ŸŒˆMore Array Methods (concat, indexOf, includes, reverse, slice, splice)

concat = ๋ฐฐ์—ด ๋ณ‘ํ•ฉ
let cats = ['blue', 'kitty']
let dogs = ['rusty', 'wyatt']

let comboParty = cats.concat(dogs)

input comboParty
output ["blue", "kitty", "rusty", "wyatt"]

includes = ํŠน์ • ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€
input cats.includes('blue')
output true

indexOf = ํŠน์ • ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ค€๋‹ค ๋˜ํ•œ, ์กด์žฌํ•˜๋Š”์ง€์˜ ์—ฌ๋ถ€๋„ ์•Œ ์ˆ˜ ์žˆ๋‹ค
input comboParty.indexOf('kitty')
output 3
input comboParty.indexOf('hong')
output -1
+)๋งŒ์•ฝ ๋ฐฐ์—ด์•ˆ์— kitty๊ฐ€ ๋‘ ๊ฐœ ์กด์žฌํ•œ๋‹ค๋ฉด ๋จผ์ € ์ฐพ์€ kitty์˜ ์ธ๋ฑ์Šค๋ฅผ ์•Œ๋ ค์ค€๋‹ค

reverse = ๋ฐฐ์—ด ์ˆœ์„œ๋ฅผ ๋ฐ”๊พผ๋‹ค
comboParty.reverse()

0 1 2 3 => 3 2 1 0

slice = ๋ฐฐ์—ด์˜ ์ผ๋ถ€๊ฐ€ ํ•„์š” ํ• ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค
comboParty.slice()  
์‹œ์ž‘์ ๊ณผ ๋์ ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค 
(์‹œ์ž‘์ ์€ ์‹œ์ž‘์š”์†Œ๋ฅผ ํฌํ•จํ•˜์ง€๋งŒ ๋์ ์€ ๋์—์žˆ๋Š” ์š”์†Œ๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค) 

input comboParty
output ["blue", "kitty", "rusty", "wyatt"]

์ˆซ์ž ํ•˜๋‚˜๋งŒ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์‹œ์ž‘์ ์ด ๋œ๋‹ค
input comboParty.slice(1,3)
output ["kitty", "rusty"]

์Œ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ๋์œผ๋กœ ๊ฐ„๋‹ค
input comboParty.slice(-2)
output ["rusty", "wyatt"]


let colors = [ "red", "orange","yellow", "green","blue","indigo","violet"]

splice = ๋ฐฐ์—ด์— ์žˆ๋Š” ๊ฐ’์„ ์ œ๊ฑฐ, ์ถ”๊ฐ€ ,๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ๋‹ค
๋‹ค๋ฅธ method์™€ ๋‹ฌ๋ฆฌ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ์›๋ณธ์„ ๋ณ€๊ฒฝํ•œ๋‹ค

colors.splice(3,1)
(์‹œ์ž‘์ ,์ œ๊ฑฐ ํ•ญ๋ชฉ ์ˆ˜)

colors.splice(1,0,'red-orange') = red์™€ orange ์‚ฌ์ด์—
'red-orange'๊ฐ€ ์ถ”๊ฐ€ ๋œ๋‹ค
(์‹œ์ž‘์ ,0,์ถ”๊ฐ€ํ•  ํ•ญ๋ชฉ)

colors.splice(2,2,'black') = ์‹œ์ž‘์ ์—์„œ 2๊ฐœํ•ญ๋ชฉ์„ ์ง€์šฐ๊ณ  'black'์ด ์ถ”๊ฐ€ ๋œ๋‹ค
(์‹œ์ž‘์ ,์ œ๊ฑฐ ํ•ญ๋ชฉ ์ˆ˜, ์ถ”๊ฐ€ํ•  ํ•ญ๋ชฉ)

sort

๐ŸŒˆReference type and Equality test

== (loose)
=== (strict)

๋ฐฐ์—ด์„ ๋น„๊ตํ• ๋•Œ๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ๋น„๊ต๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ฐธ์กฐ ์œ„์น˜(๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ)๊ฐ€ ๋น„๊ต๋˜๋Š” ๊ฒƒ์ด๋‹ค

ex) [1,2,3] ==,=== [1,2,3]
	false
    
    let num = [1,2,3]
    let numCopy = num
    num === numCopy
    true

๐ŸŒˆConst and Arrays

const๋ฅผ ๋ฐฐ์—ด์— ์‚ฌ์šฉํ• ๋•Œ ์ฐธ์กฐ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ๋ฐฐ์—ด ์•ˆ ์ฝ˜ํ…์ธ ์˜ ๋‚ด์šฉ๋ฌผ์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜๋‹ค

const nums = [1,2,3]

nums.pust(4) = ๊ฐ€๋Šฅํ•˜๋‹ค

nums = [1,2,3,4] = ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค

๐ŸŒˆNested Arrays

const gameBoard = [[1,2,3],[4,5,6],[7,8,9]]

gameBoard[1][1]
5

0๊ฐœ์˜ ๋Œ“๊ธ€