μλ°μ€ν¬λ¦½νΈμ μλ£ν μ€ μ°Έμ‘° νμ μ ν¬ν¨λλ λ°°μ΄(
Array
)μ λν λ΄μ©μ λλ€. π
Array
)μ΄λ?λ°°μ΄(Array
)μ κ°λ¨νκ² μ€λͺ
νλ©΄ μμλ₯Ό κ°μ§ 볡μμ μλ£λ€μ μ μ₯νλ ꡬ쑰μ΄λ€. μ¬κΈ°μ μμλ₯Ό κ°λλ€λ μλ―Έλ κ° μμλ§λ€ μΈλ±μ€λ₯Ό νμ©ν μ μλ€λ μ μ΄ μ΄μ ν΄λΉνκ³ , 볡μμ μλ£λ€μ λ§ κ·Έλλ‘ μ¬λ¬ μλ£λ€μ ν λ²μ μ μ₯ν μ μλ€λ μ μ΄λ€.
λ°°μ΄μ ν΅ν΄ νλμ λ³μμ μ¬λ¬κ°μ§ κ°μ λμμ μ μ₯ν μ μκ² λλ©΄μ λ€λμ λ°μ΄ν°λ₯Ό ν¨κ³Όμ μΌλ‘ λ€λ£° μ μκ³ , μΈλ±μ€λ₯Ό νμ©νμ¬ λ°μ΄ν°λ₯Ό μΆκ°νκ±°λ μ κ±°νλ λ±μ λ€μν κΈ°λ₯λ€μ νμ©ν μ μλ€.
μ΄λ² ν¬μ€ν
μμ λ°°μ΄μ μμ±κ³Ό μ κ·Ό λ°©μ, λ©μλμ κ΄λ ¨λ λ΄μ© λ±μ λν΄ μμλ³Ό κ²μ΄λ€.
λ°°μ΄μ μμ±νλ λ°©λ²μ ν¬κ² λ κ°μ§κ° μλλ° μ²« λ²μ§Έλ‘ 리ν°λ΄μ μ¬μ©νλ λ°©μ, λ λ²μ§Έλ‘ new
λ₯Ό νμ©ν μμ± λ°©μμ΄ μλ€.
let arr1 = [] // 리ν°λ΄(λ¬Έμμ΄) λ°©μ
let arr2 = new Array(arrayLength) // new νμ© λ°©μ
첫 λ²μ§Έ λ°©μμ κ°λ¨νκ² λκ΄νΈλ₯Ό νμ©νλ κ²μΌλ‘ λ°°μ΄μ μμ±ν μ μκ³ , λ λ²μ§Έ λ°©μμ arrayLength
μ ν΄λΉνλ λΆλΆμ μ«μλ₯Ό λμ
νμ¬ ν΄λΉ μ«μ λ§νΌμ κΈΈμ΄λ₯Ό κ°λ λ°°μ΄μ μμ±ν μ μλ€. ν΄λΉ λ°°μ΄μ λ΄λΆ μμλ€μ μ λΆ undefined
λ‘ κ΅¬μ±λλ€.
let arr3 = new Array(3) // output : (3) [undefined, undefined, undefined]
λν λ κ°μ§ λ°©μ λͺ¨λ λ°°μ΄ μμ±κ³Ό λμμ μ΄κΈ°νκ° κ°λ₯νλ€. 리ν°λ΄ λ°©μμ κ²½μ° λκ΄νΈ μμ μμλ₯Ό μ½€λ§λ₯Ό ν΅ν΄ ꡬλΆνμ¬ μμ±νλ λ°©λ²μΌλ‘, new
λ₯Ό νμ©ν λ°©μμ κ²½μ° μκ΄νΈ μμ μμλ₯Ό μ½€λ§λ₯Ό ν΅ν΄ ꡬλΆνμ¬ μμ±νλ λ°©λ²μΌλ‘ κ°λ₯νλ€.
let arr4 = [1, 2, "Hi"] // output : (3) [1, 2, "Hi"]
let arr5 = new Array(1, 2, "Hi") // output : (3) [1, 2, "Hi"]
κ·Έλ¦¬κ³ μμμ νμΈν μ μλ―μ΄ λ°°μ΄μ λ€μν λ°μ΄ν° νμ
μ ν¨κ» ν¬ν¨νμ¬ μ¬μ©ν μ μλ€.
μ΄λ κ² λ°°μ΄μ μμ±ν λ€μ λ°°μ΄ λ΄ μμλ€μ νμ©νκ±°λ μΆκ° λ° μ κ±°νλ λ°©λ²μ λν΄ μμ보μ
λ°°μ΄ λ΄ μμλ κ° μμλ§λ€ μΈλ±μ€(index
)λ₯Ό κ°κ³ μκ³ , μΈλ±μ€λ₯Ό ν΅ν΄ κ° μμμ μ κ·Όν μ μλ€. μΈλ±μ€λ 0
λΆν° μμνλ©° μΈλ±μ€ μμΉλ₯Ό μ§μ νλ λ°©λ²μ λ°°μ΄ μ΄λ¦μ λκ΄νΈ([]
)λ₯Ό μ΄μ΄ μμ μΈλ±μ€λ₯Ό μ½μ
νλ©΄ λλ€.
let arr = [1, 2, "Hi"]
console.log(arr[0], arr[2]) // output : 1 "Hi"
μμ κ°μ΄ λ°°μ΄μ μΈλ±μ€λ₯Ό μ§μ νκ±°λ λ°°μ΄ λ©μλ(Method
)λ₯Ό νμ©νμ¬ λ°°μ΄ μμμ μΆκ°μ μμ κ° κ°λ₯νλ€.
Method
)λ?λ©μλμ ν¨μλ μλ‘ μ μ¬νμ§λ§ λͺ νν μ μνμλ©΄ λ€λ₯Έ μ‘΄μ¬μ΄λ€.
κ°λ¨ν μ μνλ©΄ ν¨μκ° λ©μλλ₯Ό ν¬ν¨νλ μ©μ΄μ΄κ³ , λ©μλλ κ°μ²΄μ μ’ μλλ ν¨μλ₯Ό μλ―Ένλ€.
ν¨μμ κ²½μ°μλ κ·Έ μμ²΄κ° κΈ°λ₯μ μννμ§λ§, λ©μλμ κ²½μ°μλ κ°μ²΄μ λͺ λ Ήμ μ£Όκ³ κ°μ²΄κ° κΈ°λ₯μ μννλ ν¨μλΌκ³ μ΄ν΄νλ©΄ λ κ²μ΄λ€.
κ·Έλ κΈ°μ, ν¨μ νΈμΆ λ°©μκ³Ό λ©μλ νΈμΆ λ°©μμμλ μ°¨μ΄λ₯Ό 보μΈλ€.
// μμμ ν¨μ μ μΈ function funcName() { console.log('Hello') } funcName() // output : 'Hello' // Array Method : pop() let arr = [1, 2, 3] console.log(arr.pop()) // output : 3
μ μμμ ν¨μfuncName
μ ν¨μλͺ μ ν΅ν΄ λ°λ‘ μ€νμ΄ κ°λ₯νμ§λ§ λ°°μ΄μpop()
λ©μλμ κ²½μ° λ°°μ΄λͺ (arr
)μ.
λ₯Ό λΆμ΄κ³ μ¬μ©νλ€.
μ¬κΈ°μpop()
λ©μλλArray
κ°μ²΄μ μ’ μλμ΄ μκΈ° λλ¬Έμ,Array
κ°μ²΄μμ νΈμΆν μ μλ€.π μΆμ²
ν¨μμ λ©μλ : canonmjλ 벨λ‘κ·Έ : Javascript : ν¨μμ λ©μλμ μ°¨μ΄λ? objectλ₯Ό νν€μ³λ³΄μ!
ν¨μμ λ©μλ : μ§μκ°λ₯ν κ°λ° λΈλ‘κ·Έ : λ©μλμ ν¨μ (Method and Function)μ μ°¨μ΄μ
λ°°μ΄ μμ μΆκ°λ λ€μκ³Ό κ°μ΄ μΈλ±μ€λ₯Ό νμ©νμ¬ νμν μμΉμ κ°μ ν λΉν μ μλ€.
let arr = []
arr[0] = 1
console.log(arr) // output : (1) [1]
μ΄λ μμλλ‘ ν λΉν νμλ νμλ μκ³ , νμ μμΉμ ν λΉμ νλ©΄ λλ€. λ§μ½ λ°°μ΄μ κΈΈμ΄λ₯Ό μ΄κ³Όνλ λ²μμ μμλ₯Ό ν λΉνλ©΄ κ·Έ μ¬μ΄μ μμλ€μ λͺ¨λ undefined
λ‘ ν λΉλλ€.
// μ μμ μ½λμμ μ΄μ΄μ μμ±
arr[4] = 1
console.log(arr) // output : (5) [1, undefined, undefined, undefined, 1]
κ·Έλ¦¬κ³ λ©μλ(method
)λ₯Ό ν΅ν΄ μμλ₯Ό μΆκ°νλ κ²λ κ°λ₯νλ€. λνμ μΈ λ©μλλ‘ push()
μ unshift()
κ° μλ€.
push()
λ°°μ΄ λ§¨ λ€μ μμλ₯Ό μΆκ°νκ³ , unshift()
λ λ°°μ΄ λ§¨ μμ μμλ₯Ό μΆκ°νλ λ©μλμ΄λ€. κ·Έλ¦¬κ³ λ λ©μλλ μμλ₯Ό μΆκ°ν λ€ μλ‘μ΄ λ°°μ΄μ κΈΈμ΄λ₯Ό λ°ννλ€.
push()
μ unshift()
λ©μλλ 맀κ°λ³μλ‘ μΆκ°ν μμλ₯Ό μμ±νμ¬ μ¬μ©ν μ μλ€.
let arr = [1, 2, 3, 4]
let pushArr = arr.push(5)
console.log(pushArr) // output : 5
console.log(arr) // output : (5) [1, 2, 3, 4, 5]
let unshiftArr = arr.unshift(0)
console.log(unshiftArr) // output : 6
console.log(arr) // output : (5) [0, 1, 2, 3, 4, 5]
λ°°μ΄ μμμ μ κ±°λ μ΄μ μ μ¬ν λ°©λ²μΌλ‘ μ΄λ£¨μ΄μ§λ€.
λ°°μ΄ μμμ μ κ±°λ κΈ°λ³Έμ μΌλ‘ delete
μ°μ°μλ₯Ό νμ©νμ¬ κ°λ₯νλ€.
let arr = [1, 2, 3, 4]
delete arr[2]
console.log(arr) // output : (3) [1, 2, undefined, 4]
νμ§λ§ ν΄λΉ λ°©λ²μ νμ©ν κ²½μ°, μμ κ°μ΄ λ°°μ΄ κΈΈμ΄(length
)μλ λ³ν¨μ΄ μκ³ κΈ°μ‘΄ μμΉμλ undefined
κ° λ¨μμ μ μ μλ€.
κ·Έλ κΈ°μ μμ ν λ°°μ΄ μμλ₯Ό μ κ±°νκΈ° μν΄μ λ€μμ pop()
κ³Ό shift()
λ©μλλ₯Ό νμ©ν μ μλ€.
pop()
λ©μλλ push()
μ μ μ¬νκ² λ°°μ΄ λ§¨ λ€μ μμλ₯Ό μ κ±°νκ³ , shift()
λ©μλλ unshift()
λ©μλμ μ μ¬νκ² λ°°μ΄ λ§¨ μμ μμλ₯Ό μ κ±°νλ€. ν΄λΉ λ λ©μλλ λ°ν κ°μΌλ‘ λ°°μ΄μμ μ κ±°λ κ°μ λ°ννλ€.
let arr = [1, 2, 3, 4]
let popArr = arr.pop()
console.log(popArr) // output : 4
console.log(arr) // output : (3) [1, 2, 3]
let shiftArr = arr.shift()
console.log(shiftArr) // output : 1
console.log(arr) // output : (2) [2, 3]
λν, μΆκ°μ μΌλ‘ splice()
λ©μλλ₯Ό νμ©ν΄μ μμμ μ κ±°λ₯Ό μ§νν μ μλλ°, λμμ μΆκ°λ ν¨κ» ν μ μλ€. splice()
μ λ¬Έλ²μ λ€μκ³Ό κ°λ€.
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
ν΄λΉ λ¬Έλ²μ μ¬μ©νμ¬ μΆκ°μ μ κ±°λ₯Ό λμμ μ§ννλ©΄ λ€μκ³Ό κ°μ΄ ν μ μλ€.
let arr = [1, 2, 3, 4]
let spliceArr = arr.slice(1, 1, 'two') // μμλ₯Ό μ κ±°νκ³ ν΄λΉ μΈλ±μ€μ μμ μΆκ°
console.log(spliceArr) // output : [2]
console.log(arr) // output : [1, 'two', 3, 4]
κ·Έλ¦¬κ³ splice()
λ μμμ μΆκ°μ μ κ±°λ₯Ό λΆλ¦¬νμ¬ κ°κ°μ μ©λλ‘ μ¬μ©ν μλ μλ€.
// μμ μ κ±°
let arr = [1, 2, 3, 4]
arr.slice(1, 1)
console.log(arr) // output : (3) [1, 3, 4]
// μμ μΆκ°
arr.slice(1, 0, 2)
console.log(arr) // output : (4) [1, 2, 3, 4]
μμμ μμλ³Έ λ©μλλ₯Ό ν¬ν¨νμ¬ λ°°μ΄ λ΄ λ°μ΄ν°λ€μ μΈλ±μ€λ‘ μ κ·Όνμ¬ μΆκ° λ° μμ μ΄ κ°λ₯νλ€. μ΄μ μ΄λ¬ν λ°°μ΄μ΄ μλ£κ΅¬μ‘°μ μΌλ‘ μ΄λ ν μλ―Έλ₯Ό κ°λμ§ κ°λ¨νκ² μμ보μ.
λ°°μ΄μ νλμ λ³μμ μ¬λ¬ κ°μ§μ κ°μ μ μ₯ν μ μλ μλ£νμΌλ‘μ, λ°°μ΄ λν κ°μ²΄μ΄κΈ° λλ¬Έμ κ΄λ ¨λ μμ±κ³Ό λ©μλκ° μ‘΄μ¬νλ€.
λνμ μΈ μμ±μΌλ‘λ length
κ° μ΄μ ν΄λΉνκ³ λ©μλλ μμμ μΈκΈν λ©μλλ€μ΄ μ΄μ ν΄λΉνλ€.
λμΌλ‘ 보μ΄λ λ°°μ΄μ κ°μ₯ ν° νΉμ§μ μΈλ±μ€κ° μ‘΄μ¬νκΈ°μ μμκ° μλ€λ μ μ΄κ³ , μ΄λ₯Ό νμ©νμ¬ ν¨κ³Όμ μΌλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν μ μλ€λ μ μ΄λ€.
κ·Έλ λ€λ©΄ λ°°μ΄μ μ΄λ ν μλ£κ΅¬μ‘°λ₯Ό κ°κ³ μμΌλ©°, μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ ν μΈμ΄μ λ°°μ΄κ³Όλ μ΄λ ν μ°¨μ΄μ μ΄ μ‘΄μ¬ν κΉ? μ΄μ λν΄ κ°λ¨ν μμ보μ.
μ°μ λ°°μ΄μ μλ£κ΅¬μ‘°λ₯Ό μ€λͺ
νκΈ°μ μμ μλ£κ΅¬μ‘°μ λν κ°λ¨ν μ€λͺ
μ ν΄μ νλ€.
μλ£κ΅¬μ‘°(Data Structure)λ μ»΄ν¨ν° κ³Όνμμ μλ£μ ν¨μ¨μ μΈ μ κ·Ό λ° μμ μ κ°λ₯μΌ νλ μλ£μ μ‘°μ§ λ° κ΄λ¦¬μ μ μ₯μ μλ―Ένλ€.
μλ£κ΅¬μ‘°λ κ·Έ ννμ λ°λΌ λΆλ₯κ° λλλ°, μ ν ꡬ쑰(Linear
)μ λΉμ ν ꡬ쑰(NonLinear
)κ° μ΄μ ν΄λΉνλ€.
μ ν ꡬ쑰λ μλ£λ₯Ό ꡬμ±νλ λ°μ΄ν°λ₯Ό μμ°¨μ μΌλ‘ λμ΄μν¨ ννλ₯Ό μλ―Ένλ©° λ°°μ΄, μ€ν(Stack
), ν(Queue
) λ±μ΄ μ΄μ ν΄λΉνλ€. μ ν ꡬ쑰μ κ²½μ° μ μ₯λ μλ£μ μ ν κ΄κ³κ° 1:1μΈ κ²μ΄ νΉμ§μ΄λ©°, μμλ₯Ό μμλλ‘ μμ
νλ κ²½μ° ν¨κ³Όμ μΌλ‘ νμ©ν μ μλ€.
λ°λλ‘ λΉμ ν ꡬ쑰λ νλμ μλ£μ μ¬λ¬κ°μ§μ μλ£κ° μ°κ²°λ μ μλ ννλ₯Ό μλ―Ένλ©° νΈλ¦¬(Tree
)μ κ·Έλν(Graph
) λ±μ΄ μ΄μ ν΄λΉνλ€. λΉμ ν ꡬ쑰λ λ°μ΄ν°κ° 1:n κ΄κ³λ₯Ό κ°λ κ²μ΄ νΉμ§μ΄λ©° μλ£ κ°μ κ΄κ³λ₯Ό μ μν λ ν¨κ³Όμ μΌλ‘ νμ©ν μ μλ€.
μμμ μΈκΈν λ―μ΄ λ°°μ΄μ μ ν ꡬ쑰μ μνλ©° κ·Έλ κΈ°μ μ ν ꡬ쑰μ νΉμ§μ μ΄ν΄νλ©΄μ λ°°μ΄μ νΉμ§μ μ΄ν΄νλ©΄ μμν κ²μ΄λ€. μ΄μ΄μ λ°°μ΄μ νΉμ§κ³Ό μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ μ΄λ€ μ°¨μ΄κ° μλ μ§μ λν΄μ μμ보μ.
μλ£ κ΅¬μ‘° : Wikipedia : μλ£ κ΅¬μ‘°
Linear
&NonLinear
: HelloWorld : μ νꡬ쑰μ λΉμ νꡬ쑰
μλ£ κ΅¬μ‘° : blackb0xλ 벨λ‘κ·Έ : μλ°μ€ν¬λ¦½νΈμ μλ£κ΅¬μ‘°
μλ°μ€ν¬λ¦½νΈμμ λ°°μ΄μ ν νλ‘κ·Έλλ° μΈμ΄μλ μ°¨μ΄μ μ 보μΈλ€. μ΄μ λν΄ μμ보기 μν΄ νλ‘κ·Έλλ° μΈμ΄μμμ λ°°μ΄ νΉμ§μ λν΄ μ°μ μ μΌλ‘ μμ보μ.
μΌλ°μ μΌλ‘ λ°°μ΄(Array
)μ΄λ κ°μ μλ£νμ κ°μ§ μ°μλ λ©λͺ¨λ¦¬ 곡κ°μΌλ‘ μ΄λ£¨μ΄μ§ μλ£κ΅¬μ‘°λΌκ³ ν μ μλ€.
μ λ κ°μ§ νΉμ§μ λ°°μ΄μ κ°μ₯ κΈ°λ³Έμ μΈ νΉμ§μ΄λ©΄μ μλ°μ€ν¬λ¦½νΈμ λ°°μ΄κ³Ό ꡬλΆλλ νΉμ§μ΄κΈ°λ νλ€.
λ¨Όμ κ°μ μλ£νμ κ°μ§λ€λ λΆλΆμ μλ°μ€ν¬λ¦½νΈμ κ²½μ°, λ°°μ΄μ λ€μν μλ£νμ μλ£λ€μ λμμ ν λΉν μ μλ€λ μ μμ μ°¨μ΄μ μ κ°λλ€.
let arr = [1, 2, 'Hello', true]
// Numberμ String, Booleanμ μλ£νμ΄ λμμ ν λΉλ λͺ¨μ΅μ΄λ€.
μμ κ°μ΄ μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ κ²½μ°, ν μΈμ΄μ λ°°μ΄κ³Ό λ€λ₯΄κ² λ€μν μλ£νμ νλμ λ³μμ ν λΉν μ μλ€.
κ·Έλ¦¬κ³ μΌλ°μ μΈ λ°°μ΄μ΄ μ°μλ λ©λͺ¨λ¦¬ 곡κ°μ κ°λλ€λ λΆλΆμμ, μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ κ°κ°μ λ°°μ΄ μμλ€μ΄ μ°μμ μΌλ‘ μ΄λ£¨μ΄μ§μ§ μμλ λλ€.
let arr = [1, 2, 'Hello', true]
delete arr[1]
console.log(arr) // output : (4) [1, undefined, "Hello", true]
μΌλ°μ μΌλ‘ λ°°μ΄μμ λ°°μ΄ μμμ μμ κ° μ΄λ£¨μ΄μ§λ©΄, λ°°μ΄ μμλ₯Ό μ°μμ μΌλ‘ μ μ§νκΈ° μν΄ μμλ€μ μ΄λμμΌμΌ νμ§λ§, μλ°μ€ν¬λ¦½νΈμ λ°°μ΄ μμ μμ λ°©λ² μ€ νλμΈ delete
λ₯Ό μ¬μ©νλ©΄ λ°°μ΄ κΈΈμ΄κ° κ°μνμ§ μκ³ λ°°μ΄ μμμ 곡κ°μ κ·Έλλ‘ μ μ§λλ€λ μ μ΄ μ΄μ ν΄λΉνλ€.
λ°°μ΄ : CodeDragon : λ°°μ΄(Array)
λ°°μ΄ μ°¨μ΄ : CodeDragon : λ°°μ΄(Array), λ°°μ΄ μ°¨μ΄ (java vs javscript)
μμμ μΈκΈν λ°μ κ°μ΄ μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ μ¬ν νλ‘κ·Έλλ° μΈμ΄μμμ λ°°μ΄κ³Όλ μ°¨μ΄μ μ΄ μλ€.
κΈ°μ‘΄μ λ°°μ΄μ λ°μ§ λ°°μ΄(dense array
)λ‘ λ°°μ΄ μμκ° λ°μ νκ² μ°μμ μΌλ‘ μ΄μ΄μ Έμ μμ°¨μ μΈ μμ μ μ΅μ ν λ ννμ΄λ€.
νμ§λ§ μλ°μ€ν¬λ¦½νΈμ κ²½μ°μλ ν¬μ λ°°μ΄(sparse array
)λ‘ λ°°μ΄ μμμ κ° λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°κ° λ€λ₯Ό μ μκ³ μ°μμ μΌλ‘ μ΄λ£¨μ΄μ§μ§ μμλ λλ€λ μ μμ μΌλ°μ μΈ λ°°μ΄μ μλ―Έλ₯Ό κ°λλ€κ³ λ§νκΈ°μ μ΄λ €μΈ μ μλ€.
μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ λ°°μ΄μ΄λΌκ³ νμ§ μλλ€λ©΄, μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ μΌλ°μ μΈ λ°°μ΄μ νΉμ§μ κ°μΆ κ°μ²΄λΌκ³ λ§ν μλ μλ€.
μ½κ² λ§νμλ©΄ μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μμ μΈλ±μ€λ κ°μ²΄(Object
)μ νλ‘νΌν° ν€(key
)μ ν΄λΉνκ³ ,length
νλ‘νΌν°λ₯Ό λ³λλ‘ κ°λ κ°μ²΄λΌλ λ§μ΄λ€.
κ·Έλ κΈ°μ μλ°μ€ν¬λ¦½νΈμ λ°°μ΄μ κΈ°μ‘΄ λ°°μ΄μ΄ μΈλ±μ€λ₯Ό ν΅ν΄ κ° μμμ λΉ λ₯΄κ² μ κ·Όν μ μλ λ§νΌ ν¨μ¨μ μ΄μ§ μμ§λ§, λ°°μ΄ μμμ μΆκ°μ μμ λ±κ³Ό κ°μ μμ μμ μ’ λ ν¨μ¨μ μΌ μ μλ€λ λΆλΆμ΄ μ₯μ μ΄λ€.
μΆκ°μ μΌλ‘, λͺ¨λ μλ°μ€ν¬λ¦½νΈ μμ§μμλ λ°°μ΄μ μ¬ν λ°°μ΄κ³Όλ ꡬλ³νμ¬ μ’ λ λ°°μ΄μ²λΌ λμνλλ‘ μ΅μ ννμ¬ κ΅¬ννλ€λ μ λ μμλμ.
π μΆμ²
μλ°μ€ν¬λ¦½νΈμ λ°°μ΄ : poiemaweb : μλ°μ€ν¬λ¦½νΈ λ°°μ΄μ λ°°μ΄μ΄ μλλ€
Time Complexity
)νΉμ λ°°μ΄μ νλμ μμλ₯Ό μΆκ°νλ λ©μλλ κ°μ μ€ν μκ°μ κ°μ§κΉ? κ°μ κ°―μμ μμλ₯Ό μ²λ¦¬νλ λ©μλλΌλ κ·Έ λ°©μμ λ°λΌ λ€λ₯Έ ν¨μ¨μ λ³΄μΌ μ μμ κ²μ΄λ€.
μλ°μ€ν¬λ¦½νΈ λ°°μ΄μ λ©μλλ€μ΄ μ€ν μκ°μ κ°κ° μΌλ§λ κ°λ κ°μ λν΄ μ΄ν΄νκΈ° μμ, μκ° λ³΅μ‘λ(Time Complexity
)μ λΉ
μ€(Big-O
) νκΈ°λ²μ λν΄ μ νμκ° μλ€.
μ°μ μκ° λ³΅μ‘λλ μ€ν μκ°μ κ΄μ μμ ν΄λΉ μκ³ λ¦¬μ¦μ ν¨μ¨μ μΈ‘μ νλ μ λλΌκ³ λ§ν μ μλ€. κ·Έλ¦¬κ³ λΉ
μ€ νκΈ°λ²μ μ΄λ¬ν μκ° λ³΅μ‘λλ₯Ό λνλ΄λ νκΈ°λ²μ΄λ€. λΉ
μ€ νκΈ°λ²μ O()
μ ννλ‘ μμ±νκ³ μκ° λ³΅μ‘λμ λ°λΌ κ΄νΈ μμ λ€μ΄κ°λ κ°μ΄ λ¬λΌμ§λ€.
μ μκ° λ³΅μ‘λμ λΉ
μ€ νκΈ°λ²μ νμ©νμ¬ μλ°μ€ν¬λ¦½νΈ λ°°μ΄μ μΌλΆ λ©μλλ€μ΄ μ΄λ€ μκ° λ³΅μ‘λλ₯Ό κ°λ μ§μ λν΄ μμ보μ.
μ°μ , λ°°μ΄ μμμ μΆκ° λ° μ κ±°μ κ΄λ ¨λ push()
κ·Έλ¦¬κ³ pop()
λ©μλμ unshift()
, shift()
λ©μλκ° μλ€.
push()
μ pop()
μ κ²½μ°, λ°°μ΄μ 맨 λμ μμλ₯Ό μΆκ°νκ±°λ μ κ±°νλ λ©μλμ΄κΈ° λλ¬Έμ, ν λ²μ λ¨κ³λ§ νμνκ³ μκ° λ³΅μ‘λλ O(1)
λ‘ λνλΌ μ μλ€.
unshift()
μ shift()
μ κ²½μ°μλ, λ°°μ΄ λ§¨ μμ μμλ₯Ό μΆκ°νκ±°λ μ κ±°νλ λ©μλμ΄κΈ° λλ¬Έμ, λ€λ₯Έ μμλ€μ μΈλ±μ€ κ°μ΄ λ°λλ―λ‘ O(n)
μ μκ° λ³΅μ‘λλ₯Ό κ°λλ€.
pop()
μ΄ shift()
λ³΄λ€ ν¨μ¨μ μ΄λΌκ³ ?
shift()
λ©μλκ°O(n)
μ μκ° λ³΅μ‘λλ₯Ό κ°λ κ²μ λν΄ μμΈν μ€λͺ νλ©΄ λ€μκ³Ό κ°λ€.
pop()
μ κ²½μ°, 맨 λμ μμλ§ μ κ±°νκΈ° λλ¬Έμ λ€λ₯Έ μμμ μΈλ±μ€μ μν₯μ μ£Όμ§ μλλ€.
let arr = [1, 2, 3] arr.pop() console.log(arr) // output : (2) [1, 2]
μ μμλ₯Ό 보면 맨 λμ μμμΈ3
μ μ¬λΌμ§κ³ κΈ°μ‘΄ μμμΈ1
,2
λ μΈλ±μ€ κ°μ΄ κ·Έλλ‘ μμ μ μ μλ€.
let arr = [1, 2, 3] arr.shift() console.log(arr) // output : (2) [2, 3]
νμ§λ§,shift()
μ κ²½μ° λ§¨ μμ μμμΈ1
μ μ κ±°ν¨κ³Ό λμμ κΈ°μ‘΄ μμμΈ2
,3
μ μΈλ±μ€ κ°μ΄1
μ© κ°μνλ κ²μ νμΈν μ μλ€.
κ·Έλ κΈ°μ κ°μ κ°―μμ μμλ₯Ό μ²λ¦¬νμ§λ§,shift()
μ κ²½μ° λͺ¨λ μμλ₯Ό μννλ©° μΈλ±μ€ κ°μ λ³ννκΈ° λλ¬Έμ μκ° λ³΅μ‘λμμ μ°¨μ΄λ₯Ό 보μ΄λ κ²μ΄λ€.
μ΄λ κ² λ°°μ΄μ λ©μλλ€μ μκ° λ³΅μ‘λκ° μ΄λ μ λμΈμ§λ₯Ό μκ³ μ΄ν΄νλ€λ©΄ κ°μ λ°μ΄ν°λ₯Ό μ²λ¦¬ν¨μ μμ΄μλ ν¨μ¨μ μΌλ‘ λ€λ₯Έ κ²°κ³Όλ₯Ό λ§λ€μ΄ λΌ μ μκΈ°μ, λ§μ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μλ‘ μκ° λ³΅μ‘λμ λν μ΄ν΄κ° μΆ©λΆνλ€λ©΄ κ·Έκ²μ νν λμμ΄ λ κ²μ΄λ€.
λ°°μ΄κ³Ό μκ° λ³΅μ‘λ : μλλλ Tistory : [Javascript/JS] μλ°μ€ν¬λ¦½νΈμμμ λ°°μ΄κ³Ό μκ°λ³΅μ‘λ
μλ°μ€ν¬λ¦½νΈ μλ£νκ³Ό 볡μ‘λ : λ¬λμν° κ°λ° λΈλ‘κ·Έ : λ¬Έμ 31 : μλ°μ€ν¬λ¦½νΈ μλ£νμ 볡μ‘λ
λ°°μ΄ : MDN Web Docs :
Array
μλ°μ€ν¬λ¦½νΈArray
: poiemaweb : 5.28 Array λ°°μ΄