JavaScript原生实现根据指定值删除数组元素

作者:半夏时间:2026-10-22 16:29:19浏览:417

本文介绍如何在JavaScript中根据指定值删除数组元素。原生数组的splice方法仅支持通过索引删除,本文通过封装contains方法获取元素索引,结合splice实现按值删除。同时对比jQuery的inArray方法,提供原生JS解决方案及完整代码示例。

JavaScript根据值删除数组元素实现

本文通过实例讲解如何在JavaScript中根据指定值删除数组元素,供读者参考。

主要解决以下问题:

1. 判断元素是否存在于JavaScript数组中。

2. 根据指定值从数组中删除元素。

核心要点:此功能类似于jQuery中的 $.inArray() 方法。

原生splice方法与索引删除

若使用原生JavaScript删除数组元素,需借助特定函数。

splice() 方法用于删除元素,并可同时向数组添加新元素。

该方法依据数组下标(即索引)来删除元素,例如:


var arrList = ['a','b','c','d'];
arrList.splice(2,1);
alert(arrList);

当指定下标为2时,即删除值为'c'的元素。

在实际场景中,常需根据元素的“值”而非索引来删除或获取数据。若使用原生JavaScript,这较为繁琐;而jQuery通过 $.inArray() 方法可轻松实现。

封装自定义删除方法

下面为数组封装一个自定义方法。


Array.prototype.contains = function(obj) {
 var i = this.length;
 while (i--) {
  if (this[i] === obj) {
   return i; // 返回的这个 i 就是元素的索引下标,
  }
 }
 return false;
}
var arrList = ['a','b','c','d'];
arrList.splice(arrList.contains('c'),1) // 这样就可以删除 这个元素了直接

编写如下函数:


function contains(a, obj) {
 var i = a.length;
 while (i--) {
  if (a[i] === obj) {
   return i;
  }
 }
 return false;
}

直接调用该方法即可。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript排序算法总结》、《JavaScript查找算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述内容对读者的JavaScript程序设计有所帮助。

作者最新文章