JavaScript Array splice()

陣列 (array) 的 splice() 方法用來插入、刪除或替換陣列中的某一個或某個範圍的元素。

語法:

ary.splice(start)
ary.splice(start, deleteCount)
ary.splice(start, deleteCount, newElement1, newElement2, ...)
  • 參數 start 表示操作開始的索引位置;如果 start 是負數,表示從陣列後面算起,例如 -1 表示最後一個元素的位置
  • 參數 deleteCount 表示多少個元素要被刪除,如果 deleteCount 是 0 表示不要刪除任何元素。預設 deleteCount 等於 (ary.length - start)
  • 參數 newElement1, newElement2, ... 表示要新增的陣列中的元素,新元素會從 start 的位置開始加入,如果沒有指定則表示沒有要新增元素
  • splice() 執行後會返回一個陣列,陣列中是被刪除的元素

刪除元素

var fruits = ['Banana', 'Orange', 'Apple', 'Mango', 'Peach'];
var removed = fruits.splice(2, 2);

// 輸出 ["Banana", "Orange", "Peach"]
console.log(fruits);

// 輸出 ["Apple", "Mango"]
console.log(removed);
var fruits = ['Banana', 'Orange', 'Apple', 'Mango', 'Peach'];
var removed = fruits.splice(-2, 1);

// 輸出 ["Banana", "Orange", "Apple", "Peach"]
console.log(fruits);

// 輸出 ["Mango"]
console.log(removed);

刪除並新增元素

var fruits = ['Banana', 'Orange', 'Apple', 'Mango', 'Peach'];
var removed = fruits.splice(2, 2, 'Watermelon', 'Lemon');

// 輸出 ["Banana", "Orange", "Watermelon", "Lemon", "Peach"]
console.log(fruits);

// 輸出 ["Apple", "Mango"]
console.log(removed);

新增元素

var fruits = ['Banana', 'Orange', 'Apple', 'Mango', 'Peach'];
var removed = fruits.splice(1, 0, 'Watermelon', 'Lemon');

// 輸出 ["Banana", "Watermelon", "Lemon", "Orange", "Apple", "Mango", "Peach"]
console.log(fruits);

// 輸出 []
console.log(removed);