翻譯不完整。請協助 翻譯此英文文件

splice() 這方法可刪除或新增一個Array的內容。

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

myFish.splice(2, 0, 'drum'); // 新增字串'drum' 在第index=2的位置
// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]

myFish.splice(2, 1); // 移除第二個位置的物件 (也就是字串"drum")
// myFish is ["angel", "clown","mandarin", "sturgeon"]

語法

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

參數

start
陣列中要開始改動的索引(起始為 0)。 如果大於陣列長度,則索引值會被設為陣列長度。 若是負數,則會從陣列中最後一個元素開始,此外,若其絕對值大於陣列的長度,則會被設為 0。
deleteCount 選擇性
表示欲刪除的陣列元素數量的整數。 若 deleteCount 為 0,則不會有元素被刪除。 因此,你應該給定至少一個欲加入的新元素。 如果 deleteCount 大於陣列起始索引算起的剩餘元素數量,則會從起始索引到最後一個元素都刪除。
如果 deleteCount 被忽略,抑或是其值大於 array.length - start ,則所有從起始索引開始到陣列中最後一個元素都會被刪除。
item1, item2, ... 選擇性
從起始索引開始,要加入到陣列的元素。 如果你沒有指定任何元素,則 splice() 只會依照 start 和 deleteCount 刪除陣列的元素。

回傳值

一個包含被刪除的元素陣列。如果只有一個元素被刪除,依舊是回傳包含一個元素的陣列。 倘若沒有元素被刪除,則會回傳空陣列。

說明

如果你插入的元素數量和刪除的數量不同,則回傳的陣列長度也會和原先的不同。

範例

從索引 2 的位置開始,刪除 0 個元素並插入 "drum"

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum');

// myFish 為 ["angel", "clown", "drum", "mandarin", "sturgeon"] 
// removed 為 [], 沒有元素被刪除

從索引 3 的位置開始,刪除 1 個元素

var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
var removed = myFish.splice(3, 1);

// removed 為 ["mandarin"]
// myFish 為 ["angel", "clown", "drum", "sturgeon"] 

從索引 2 的位置開始,刪除 1 個元素並插入 "trumpet"

var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
var removed = myFish.splice(2, 1, 'trumpet');

// myFish 為 ["angel", "clown", "trumpet", "sturgeon"]
// removed 為 ["drum"]

從索引 0 的位置開始,刪除 2 個元素並插入 "parrot"、"anemone" 和 "blue"

var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');

// myFish 為 ["parrot", "anemone", "blue", "trumpet", "sturgeon"] 
// removed 為 ["angel", "clown"]

從索引 2 的位置開始,刪除 2 個元素

var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];
var removed = myFish.splice(myFish.length - 3, 2);

// myFish 為 ["parrot", "anemone", "sturgeon"] 
// removed 為 ["blue", "trumpet"]

從索引 -2 的位置開始,刪除 1 個元素

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(-2, 1);

// myFish 為 ["angel", "clown", "sturgeon"] 
// removed 為 ["mandarin"]

從索引 2 的位置開始,刪除所有元素(包含起始索引的元素)

var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2);

// myFish 為 ["angel", "clown"] 
// removed 為 ["mandarin", "sturgeon"]

規範

規範 狀態 備註
ECMAScript 3rd Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.prototype.splice' in that specification.
Living Standard  

瀏覽器相容性

Feature Chrome Edge Firefox (Gecko) Edge Internet Explorer Opera Safari
Basic support 1.0 (Yes) 1.0 (1.7 or earlier) (Yes) 5.5 (Yes) (Yes)
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

參見

  • push() / pop() — add/remove elements from the end of the array
  • unshift() / shift() — add/remove elements from the beginning of the array
  • concat() — returns a new array comprised of this array joined with other array(s) and/or value(s)

文件標籤與貢獻者

 此頁面的貢獻者: jsgao0, Mars-Hung
 最近更新: jsgao0,