受純函數的影響,並且Array.prototype.splice正好不是純函數,因此以前對splice這個方法避之不及。基本被slice替代。 可是最近偶然在看了一波同事的代碼以後,發現splice仍是十分好用的哈~javascript
MDN:splice() 方法經過刪除或替換現有元素來修改數組,並以數組形式返回被修改的內容。此方法會改變原數組。java
array.splice(start, deleteCount, ...replaceItems)
複製代碼
經過以上介紹,咱們發現splice不只能夠刪除數組元素,甚至能夠替換,插入元素。數組
const array = [1, 2, 3, 4, 5];
// 從index=1開始,刪除一個元素
const index = 1;
array.splice(index, 1); // array=[1, 3, 4, 5]
複製代碼
ps: 以前一直想,爲何數組沒有replace方法呢,其實一直都是有的函數
const array = [1, 2, 3, 4, 5];
// 從index=1開始,刪除一個元素, 而且插入一個元素 (其實就是替換)
array.splice(1, 1, 20); // array=[1, 20, 3, 4, 5];
複製代碼
const array = [1, 2, 3, 4, 5];
const index = 1;
array.splice(index, 0, 20); // array=[1, 20, 2, 3, 4, 5];
複製代碼
const array = [1, 2, 3, 4, 5];
const index = 1;
array.splice(index+1, 0, 20); // array=[1, 2, 20, 3, 4, 5];
複製代碼
經過以上例子不難推導出多個元素的操做了,我就不廢話了!~spa
Array.prototype.splice()方法十分實用,能夠輕鬆實現對數組的增刪改。prototype