受纯函数的影响,并且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