整理一下常用的 javascript 陣列操作方式。
原始陣列:
let fruit=["apple", "banana", "strawberry"];
push(): 加入資料到陣列末端
fruit.push("orange"); //["apple", "banana", "strawberry","orange"]
pop(): 移除陣列最末端項目
fruit.pop(); //["apple", "banana", "strawberry"]
shift(): 移除陣列最前端項目
fruit.shift(); //["banana", "strawberry"]
unshift(): 加入項目到陣列前端
fruit.unshift("apple", "orange", "melon"); //["apple", "orange", "melon","banana", "strawberry"]
indexOf: 在陣列中尋找項目的索引
let index=fruit.indexOf("apple"); //0
splice(): 移除陣列指定項目開始的數量
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
start
陣列中要開始改動的元素索引(起始為 0)。若索引大於陣列長度,則實際開始的索引值會被設為陣列長度。若索引為負,則會從陣列中最後一個元素開始往前改動(起始為 -1)且若其絕對值大於陣列的長度,則會被設為 0。
deleteCount (選擇性)
一個表示欲刪除的原陣列元素數量的整數。
若省略了 deleteCount,或假如其值大於 array.length - start(也就是 deleteCount 大於 start 算起的剩餘元素數量),則所有從 start 開始到陣列中最後一個元素都會被刪除。
若 deleteCount 為 0 或是負數,則不會有元素被刪除。 因此,你應該給定至少一個欲加入的新元素(見下方說明)。
item1, item2, ... (選擇性)
從 start 開始,要加入到陣列的元素。 如果你沒有指定任何元素,則 splice() 只會依照 start 和 deleteCount 刪除陣列的元素。
fruit.splice(1, 2); //["apple","banana", "strawberry"]
splice() 也可以再刪除後同時插入資料
fruit.splice(1, 0, "mango", "cocona"); //["apple","mango", "cocona","banana", "strawberry"]
slice(): 複製
arr.slice([begin[, end]])
begin 選擇性
自哪一個索引(起始為 0)開始提取拷貝。
可使用負數索引,表示由陣列的最末項開始提取。slice(-2) 代表拷貝陣列中的最後兩個元素。
假如 begin 為 undefined,則 slice 會從索引 0 開始提取。
end 選擇性
至哪一個索引(起始為 0)之前停止提取。slice 提取但不包含至索引 end。
舉例來說,slice(1,4) 提取了陣列中第二個元素至第四個元素前為止(元素索引 1、2 以及 3)來拷貝。
可使用負數索引,表示由陣列的最末項開始提取。slice(2,-1) 代表拷貝陣列中第三個元素至倒數第二個元素。
若省略了 end,則 slice 會提取至陣列的最後一個元素(arr.length)。
假如 end 大於陣列的長度,slice 會提取至陣列的最後一個元素(arr.length)。
let fruit2=fruit.slice(1, 3); //["mango", "cocona"]
concat(): 合併陣列
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]]) const array1 = ['a', 'b', 'c']; const array2 = ['d', 'e', 'f']; const array3 = array1.concat(array2);