javascript 的一些陣列操作方式

標籤: javascript array

整理一下常用的 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);