如何根据值从数组中删除项目?

36 浏览
0 Comments

如何根据值从数组中删除项目?

这个问题已经有答案了

如何从JavaScript数组中删除特定的项?

是否有一种方法可以从JavaScript数组中删除一个项?

给定一个数组:

var ary = ['three', 'seven', 'eleven'];

我想要做这样的事情:

removeItem('seven', ary);

我查阅了splice(),但它只能按位置号码删除,而我需要删除具有特定值的项。

admin 更改状态以发布 2023年5月22日
0
0 Comments

可以使用一个一行代码实现:

var arr = ['three', 'seven', 'eleven'];
// Remove item 'seven' from array
var filteredArray = arr.filter(function(e) { return e !== 'seven' })
//=> ["three", "eleven"]
// In ECMA6 (arrow function syntax):
var filteredArray = arr.filter(e => e !== 'seven')

这里使用了JS中的filter函数。它在IE9及以上版本中支持。

它的作用(来自于文档链接):

filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。filter()不会对空数组进行检测。filter()不会改变原始数组。

所以基本上,这与所有其他的for (var key in ary) { ... }解决方案是相同的,只是for in构造在IE6及以上版本中支持。

基本上,filter是一个方便的方法,与for in构造相比更加美观(而且可链式调用)(据我所知)。

0
0 Comments

你可以像这样使用indexOf方法

var index = array.indexOf(item);
if (index !== -1) {
  array.splice(index, 1);
}

注意你需要为IE8及以下版本提供shim

var array = [1,2,3,4]
var item = 3
var index = array.indexOf(item);
array.splice(index, 1);
console.log(array)

0