JavaScript 删除数组指定元素的三种实现方式

作者:木棉

时间:2026-10-22

浏览:168

本文详解在 JavaScript 中删除数组指定元素的三种常用方法。首先介绍通过自定义 indexOf 结合 splice 实现精准移除;其次解析 splice 方法的三个参数(索引、长度、替换值)如何灵活完成删除、替换与添加操作;最后对比 delete 操作符仅将元素置为 undefined 且不改变数组长度的特性,帮助开发者根据实际需求选择合适方案。

文章目录

本文整理了在 JavaScript 中删除数组指定元素的常见场景及对应的函数实现,并分析了不同方法的行为差异,以下是完整内容。

通过 indexOf 与 splice 组合删除元素

删除数组中指定的某个元素

js删除数组中某一项或几项的几种方法 https://www.jb51.net/article/154737.htm

首先,可以为 JS 的 Array 对象定义一个自定义函数,用于查找指定元素在数组中的索引位置,代码实现如下:


Array.prototype.indexOf = function(val) { 
for (var i = 0; i < this.length; i++) { 
if (this[i] == val) return i; 
} 
return -1; 
}; 

接着,利用获取到的元素索引,调用 JS 数组内置的删除函数来移除该元素:

具体代码结构如下:


Array.prototype.remove = function(val) { 
var index = this.indexOf(val); 
if (index > -1) { 
this.splice(index, 1); 
} 
}; 

基于上述逻辑构造出的函数,例如我们有一个数组:


var emp = ['abs','dsf','sdf','fd'] 

若需删除其中的 'fd' 元素,可执行以下调用:


emp.remove('fd'); 

splice 方法的参数详解与应用

删除数组中的某一项

splice(index,len,[item]):注意,该方法会直接修改原始数组。

splice 方法包含三个参数,可用于实现数组内单个或多个值的替换、删除或添加操作。

参数说明:index 表示数组起始下标,len 表示替换或删除的长度,item 表示替换的值;若执行删除操作,item 参数留空。

示例数组定义:arr = ['a','b','c','d']

执行删除操作

//删除起始下标为1,长度为1的一个值(len设置1,如果为0,则数组不变) 
var arr = ['a','b','c','d']; 
arr.splice(1,1); 
console.log(arr); 
//['a','c','d']; 
//删除起始下标为1,长度为2的一个值(len设置2) 
var arr2 = ['a','b','c','d'] 
arr2.splice(1,2); 
console.log(arr2); 
//['a','d'] 

执行替换操作

//替换起始下标为1,长度为1的一个值为‘ttt',len设置的1 
var arr = ['a','b','c','d']; 
arr.splice(1,1,'ttt'); 
console.log(arr); 
//['a','ttt','c','d'] 
var arr2 = ['a','b','c','d']; 
arr2.splice(1,2,'ttt'); 
console.log(arr2); 
//['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt',len设置的1 

执行添加操作:将 len 设置为 0,并指定 item 为要添加的值。


var arr = ['a','b','c','d']; 
arr.splice(1,0,'ttt'); 
console.log(arr); 
//['a','ttt','b','c','d'] 表示在下标为1处添加一项'ttt' 

delete 操作符对数组的影响

使用 delete 方法删除数组元素后,该下标处的值会被置为 undefined,但数组的总长度保持不变。


var arr = ['a','b','c','d']; 
delete arr[1]; 
arr; 
//["a", undefined × 1, "c", "d"] 中间出现两个逗号,数组长度不变,有一项为undefined 

以上关于 JS 删除数组元素的方法分享完毕,希望能提供参考,感谢支持。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章