2011-12-09 67 views
0

我有一个像treeids = ['a','b','c','d']; 这样的数组我想删除'b'元素。通过使用索引我们可以做,但我想这与出使用索引,因为这些值动态到这个数组。 只需删除名称而已。 它应该支持IE7浏览器。 如何做到这一点。如何从阵列中删除特定元素

感谢

+1

http://briancray.com/2009/09/30/remove-value-javascript-array/ – panupan

+0

只删除第一个实例或元素的所有实例? – Jon

+0

@Jon元素的所有实例 – Mihir

回答

3

的JavaScript 1.6提供Array.filter,这将满足您的需求即期。

当然,从底部的浏览器支持表中可以看到,如果您必须支持IE 9以上的版本,那么您的运气不佳。

jQuery提供了jQuery.grep它做同样的事情,但介绍了一个单独的库的开销。

Underscore.js有_.filter,但同样,这将仅使用一个单独的库仅用于一个目的。

+0

但是,它是否可以在OP 7要求的IE 7中可用? – Jon

+0

@Jon:不,它不是,你可以从我的扩展回应中看到。 –

+0

@Nikc ...如何用jquery.grep做同样的事情? – Mihir

0

此删除所有的“B的:

Array.prototype.remove= function(item){ 
    var L= this.length, indexed; 
    while(L){ 
     indexed= this[--L]; 
     if(indexed=== itm) this.splice(L, 1); 
    } 
    return this; 
} 

剪接可用在IE7(和6)。它从第一个参数指定的索引开始,删除第二个参数中传递的项目数。

+1

这需要一些解释才行。 – Jon

2

尝试以下操作:

treeids.splice(treeids.indexOf('b'), 1); 

现在treeids包含剩余...这里'b'是要删除的元素。 indexOf的参数可以来自一个变量。此外,你应该检查错误:索引不应该是-1。