从新审视 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

相关文章
相关标签/搜索