JavaScript数组search和删除string?

我有:

var array = new Array(); array.push("A"); array.push("B"); array.push("C"); 

我希望能够做到这样的事情:

array.remove("B");

但是没有删除function。 我如何做到这一点?

以相反的顺序遍历列表,并使用.splice方法。

 var array = ['A', 'B', 'C']; // Test var search_term = 'B'; for (var i=array.length-1; i>=0; i--) { if (array[i] === search_term) { array.splice(i, 1); // break; //<-- Uncomment if only the first term has to be removed } } 

search词的所有出现必须被删除时,相反的顺序是重要的。 否则,柜台会增加,你会跳过元素。

当只有第一次被删除时,以下内容也将起作用:

 var index = array.indexOf(search_term); // <-- Not supported in <IE9 if (index !== -1) { array.splice(index, 1); } 

我实际上用更新的1行解决scheme更新了这个线程:

 let arr = ['A', 'B', 'C']; let el = 'B'; arr = arr.filter(e => e !== el); 

这个想法基本上是通过select与要删除的元素不同的所有元素来过滤数组。

注意:将删除所有的事件。

DEMO

您需要使用.indexOf()查找所需的位置,然后使用.indexOf()将其删除。

 function remove(arr, what) { var found = arr.indexOf(what); while (found !== -1) { arr.splice(found, 1); found = arr.indexOf(what); } } var array = new Array(); array.push("A"); array.push("B"); array.push("C");​ remove(array, 'B'); alert(array)​​​​;  function remove(arr, what) { var found = arr.indexOf(what); while (found !== -1) { arr.splice(found, 1); found = arr.indexOf(what); } } var array = new Array(); array.push("A"); array.push("B"); array.push("C");​ remove(array, 'B'); alert(array)​​​​; 

这将照顾所有事件。

使用:

 array.splice(1, 1); 

这将从数组中删除第一个项目。

你可以通过在数组原型中添加一个remove函数来解决这个问题。

 Array.prototype.remove = function(elem, all) { for (var i=this.length-1; i>=0; i--) { if (this[i] === elem) { this.splice(i, 1); if(!all) break; } } return this; }; 

用法:

 var myArray = ['A', 'B', 'C', 'D', 'A'] myArray.remove('A'); => ["A", "B", "C", "D"] myArray.remove('A', true); => ["B", "C", "D"] 

但要小心的扩展原生的原型可能是反模式!

你必须写你自己的删除。 您可以遍历数组,获取要删除的项目的索引,并使用splice删除它。

或者,您可以创build一个新数组,循环当前数组,并且如果当前对象与您想要删除的内容不匹配,请将其放入一个新数组中。

使用array.splice

 /*array.splice(index , howMany[, element1[, ...[, elementN]]]) array.splice(index) // SpiderMonkey/Firefox extension*/ array.splice(1,1) 

来源: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice