JavaScript数组指定位置增删元素:splice与slice方法详解

作者:木棉

时间:2026-10-23

浏览:178

本文详解JavaScript中利用splice和slice方法在数组指定位置进行元素增删的操作。通过具体示例展示splice修改原数组及slice返回新数组的区别,并演示如何基于这两个方法扩展Array原型,实现自定义的insert和remove功能,帮助开发者高效处理数组数据。

文章目录

在JavaScript中,可以通过splice或slice方法在指定位置对数组进行元素的添加或删除操作。此外,还可以结合使用slice和delete等方式来实现类似功能。

splice方法概述与参数说明

splice方法概述

splice方法用于向数组中添加或删除项目,并返回被删除的项目列表。需要注意的是,该方法会直接修改原始数组。


 arrayObject.splice(index, howmany, item1, ..., itemX)

参数说明

index:必选参数,为整数,指定添加或删除项目的起始位置。若使用负数,则从数组末尾开始计算位置。

howmany:必选参数,指定要删除的项目数量。若设为0,则不执行删除操作。

item1, ..., itemX:可选参数,指定要添加到数组中的新项目。

splice方法使用示例

使用示例

删除第3个元素


var arr = [1, 2, 3, 4, 5];
arr.splice(2, 1);
console.log(arr) //[1, 2, 4, 5]

删除前3个元素


var arr = [1, 2, 3, 4, 5];
arr.splice(0, 3);
console.log(arr); //[4, 5]

在第2个元素之后添加新数字9


var arr = [1, 2, 3, 4, 5];
arr.splice(2, 0, 9);
console.log(arr) //[1, 2, 9, 3, 4, 5]

扩展Array.insert与remove方法

扩展Array.insert方法

利用splice方法,可以为Array原型添加一个原生的insert方法,从而直接对数组进行操作:


Array.prototype.insert = function(index) {
 index = Math.min(index, this.length);
 arguments.length > 1
 && this.splice.apply(this, [index, 0].concat([].pop.call(arguments)))
 && this.insert.apply(this, arguments);
 return this;
};

使用示例


var arr = [1, 2, 3, 4, 5];
arr.insert(2, -1, -2, -3);
console.log(arr); // [1, 2, -1, -2, -3, 3, 4, 5]

扩展Array.remove方法

同样地,也可以利用slice方法为Array原型添加一个原生的remove方法。


Array.prototype.remove = function(from, to) {
 var rest = this.slice((to || from) + 1 || this.length);
 this.length = from < 0 ? this.length + from : from;
 return this.push.apply(this, rest);
};

使用示例,删除第3个元素


var arr = [1, 2, 3, 4, 5];
arr.remove(2); //第3个元素索引是2
console.log(arr); //[1, 2, 4, 5]

slice方法概述与参数说明

此处使用了slice方法,其简介如下:

slice方法概述

slice()方法用于从已有数组中返回选定的元素。该方法返回一个新数组,而不会修改原有数组。


arrayObject.slice(start,end)

参数说明

start:必选参数,规定从何处开始选取。若为负数,则从数组尾部开始计算位置。例如,-1表示最后一个元素,-2表示倒数第二个元素,依此类推。

end:可选参数,规定从何处结束选取。该参数指定数组片段结束处的数组下标。若未指定此参数,则切分的数组包含从start到数组结束的所有元素。若该参数为负数,则表示从数组尾部开始计算的元素位置。

总结

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对本站的支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章