1. 程式人生 > >JavaScript splice()

JavaScript splice()

splice()方法通過刪除現有元素和/或新增新元素來更改陣列的內容

var myFish = ["angel", "clown", "mandarin", "sturgeon"];

myFish.splice(2, 0, "drum"); 
// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"] 

myFish.splice(2, 1); 
// myFish is ["angel", "clown", "mandarin", "sturgeon"] 

myFish.splice(2, 1, "splice", "parrot"
); // myFish is ["angel", "clown", "splice", "parrot", "sturgeon"]

語法EDIT

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

引數

start​
指定修改的開始位置(從0計數)。如果超出了陣列的長度,則從陣列末尾開始新增內容;如果是負值,則表示從陣列末位開始的第幾位。
deleteCount 可選
整數,表示要移除的陣列元素的個數。如果 deleteCount 是 0,則不移除元素。這種情況下,至少應新增一個新元素。如果 
deleteCount 大於start 之後的元素的總數,則從 start 後面的元素都將被刪除(含第 start 位)。
如果deleteCount被省略,則其相當於(arr.length - start)。
item1, item2, ... 可選
要新增進陣列的元素,從start位置開始。如果不指定,則 splice() 將只刪除陣列元素。

返回值

由被刪除的元素組成的一個數組。如果只刪除了一個元素,則返回只包含一個元素的陣列。如果沒有刪除元素,則返回空陣列。

描述EDIT

如果新增進陣列的元素個數不等於被刪除的元素個數,陣列的長度會發生相應的改變。

提示和註釋EDIT

註釋:請注意,splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對陣列進行修改。

示例EDIT

使用 splice()

如下程式碼演示了 splice 的用法:

var myFish = ["angel", "clown", "mandarin", "surgeon"];

//從第 2 位開始刪除 0 個元素,插入 "drum"
var removed = myFish.splice(2, 0, "drum");
//運算後的 myFish:["angel", "clown", "drum", "mandarin", "surgeon"]
//被刪除元素陣列:[],沒有元素被刪除

//從第 3 位開始刪除 1 個元素
removed = myFish.splice(3, 1);
//運算後的myFish:["angel", "clown", "drum", "surgeon"]
//被刪除元素陣列:["mandarin"]

//從第 2 位開始刪除 1 個元素,然後插入 "trumpet"
removed = myFish.splice(2, 1, "trumpet");
//運算後的myFish: ["angel", "clown", "trumpet", "surgeon"]
//被刪除元素陣列:["drum"]

//從第 0 位開始刪除 2 個元素,然後插入 "parrot", "anemone" 和 "blue"
removed = myFish.splice(0, 2, "parrot", "anemone", "blue");
//運算後的myFish:["parrot", "anemone", "blue", "trumpet", "surgeon"]
//被刪除元素的陣列:["angel", "clown"]

//從第 3 位開始刪除 2 個元素
removed = myFish.splice(3, Number.MAX_VALUE);
//運算後的myFish: ["parrot", "anemone", "blue"]
//被刪除元素的陣列:["trumpet", "surgeon"]