JavaScript Array


JavaScript Array

宣告陣列

var arr = ["a", "b"]
console.log(arr) // [a, b]
console.log(typeof(arr)) // object

陣列長度

var arr = ["a", "b"]
console.log(arr.length) // 2

讀取陣列的元素

var arr = ["a", "b"]
console.log(arr[0]) // a
console.log(arr[1]) // b
console.log(arr[2]) // undefined

修改陣列元素

var arr = ["a", "b"]
arr[0] = "c"
console.log(arr[0]) // c

新增陣列元素

var arr = ["a", "b"]
arr.push("c")
console.log(arr) // [a, b, c]
也可使用
var arr = ["a", "b"]
arr[arr.length] = "c"
console.log(arr) // [a, b, c]
聰明的你如果把 index 打超過陣列長度會得到這樣的結果
var arr = ["a", "b"]
arr[4] = "c"
console.log(arr) // [a, b, undefined, undefined, c]
console.log(arr.length) // 5

刪除元素

pop() 方法可以刪除陣列中最後一個元素
var arr = ["a", "b", "c"]
arr.pop()
console.log(arr) // [a, b]
shift() 方法可以刪除陣列中第一個元素
var arr = ["a", "b", "c"]
arr.shift()
console.log(arr) // [b, c]
delete 方法可以刪除陣列中指定的元素 但他不會移除元素 而是把該元素指定成 undefined
var arr = ["a", "b", "c"]
delete arr[0]
console.log(arr) // [undefined, b, c]

splice()

splice() 是個特別的方法 他可以刪除元素也可以加入新的元素來改變陣列的內容

arr.splice(start, deleteCount, item1, item2, ...) 

start

陣列中要開始改動的元素的index。若索引大於陣列長度,則實際開始的索引值會被設為陣列長度。若索引為負,則會從陣列中最後一個元素開始往前改動(起始為 -1)且若其絕對值大於陣列的長度,則會被設為 0。

deleteCount [選填]

一個表示欲刪除的原陣列元素數量的整數。 如省略了 deleteCount 或假如其值大於 arr.length - start 則所有從 start 開始到陣列中最後一個元素都會被刪除。 若 deleteCount 為 0 或是負數 則不會有元素被刪除 因此應該定至少新增一個元素

item1, item2 [選填]

從 start 開始要加入的元素 如果你沒有指定任何元素則會依照 start 和 deleteCount 刪除元素

results

splice() 方法會回傳被刪除的陣列

從第 2 個元素開始刪除
var arr = ["a", "b", "c", "d"]
var results = arr.splice(2) 
console.log(arr) // [a, b]
console.log(results) // [c, d]
從第 0 個元素開始刪除 2 個元素
var arr = ["a", "b", "c", "d"]
var results = arr.splice(0, 2) 
console.log(arr) // [c, d]
console.log(results) // [a, b]
從第 0 個元素開始刪除 2 個元素 並新增一個元素
var arr = ["a", "b", "c", "d"]
var results = arr.splice(0, 2, "e") 
console.log(arr) // [e, c, d]
console.log(results) // [a, b]
刪除指定 index 的元素
var arr = ["a", "b", "c", "d"]
arr.splice(1, 1) 
console.log(arr) // [a, c, d]
在指定 index 插入新元素
var arr = ["a", "b", "c", "d"]
arr.splice(1, 0, "e") 
console.log(arr) // [a, e, b, c, d]

陣列合併 concat()

var arr = ["a", "b"]
var arr2 = ["c", "d"]
var arr3 = ["e", "f"]
var arr4 = arr.concat(arr2, arr3)
console.log(arr4) // [a, b, c, d, e, f]

陣列擷取 slice()

arr.slice(start, end)

start

表示開始取的 index

end

表示結束的 index

results

slice() 方法會回傳 start~end-1 index 的陣列

var arr = ["a", "b", "c", "d"]
var sub_arr = arr.slice(1, 3)
console.log(sub_arr) // [b, c]

WRITTEN BY
Aki

熱愛寫code的開發者,專注於 Android 手機 Native App 開發,對於 IOS 也有涉略。閒暇之餘也學習 JavaScript 等前端框架