從新審視 Array.prototype.splice

受純函數的影響,並且Array.prototype.splice正好不是純函數,因此以前對splice這個方法避之不及。基本被slice替代。 可是最近偶然在看了一波同事的代碼以後,發現splice仍是十分好用的哈~javascript

方法介紹

MDN:splice() 方法經過刪除或替換現有元素來修改數組,並以數組形式返回被修改的內容。此方法會改變原數組。java

語法

array.splice(start, deleteCount, ...replaceItems)
複製代碼

用法

經過以上介紹,咱們發現splice不只能夠刪除數組元素,甚至能夠替換,插入元素。數組

刪除第i個元素

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];
複製代碼

insertBefore

const array = [1, 2, 3, 4, 5];
const index = 1;
array.splice(index, 0, 20); // array=[1, 20, 2, 3, 4, 5];
複製代碼

insertAfter

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

相關文章
相關標籤/搜索