Javascript 如何从数组中删除特定元素

Javascript 如何从数组中删除特定元素,javascript,Javascript,我有一个类似于treeids=['a','b','c','d']的数组 我想删除“b”元素。通过使用索引,我们可以做到这一点,但我希望不使用索引,因为这些值是动态地进入这个数组的。 只需删除名称即可。 它应该支持IE7浏览器。 如何做到这一点 感谢JavaScript1.6提供的功能,它可以满足您的现场需求 当然,正如您在底部的浏览器支持表中所看到的,如果您必须支持比IE 9旧的IE,那么您就倒霉了 jQuery提供了做同样事情的函数,但引入了单独库的开销 Underline.js有,但同样地,

我有一个类似于
treeids=['a','b','c','d']的数组
我想删除“b”元素。通过使用索引,我们可以做到这一点,但我希望不使用索引,因为这些值是动态地进入这个数组的。
只需删除名称即可。
它应该支持IE7浏览器。
如何做到这一点

感谢JavaScript1.6提供的功能,它可以满足您的现场需求

当然,正如您在底部的浏览器支持表中所看到的,如果您必须支持比IE 9旧的IE,那么您就倒霉了

jQuery提供了做同样事情的函数,但引入了单独库的开销

Underline.js有,但同样地,这将使用一个单独的库来实现一个目的。

JavaScript 1.6提供了一个适合您现场需要的库

当然,正如您在底部的浏览器支持表中所看到的,如果您必须支持比IE 9旧的IE,那么您就倒霉了

jQuery提供了做同样事情的函数,但引入了单独库的开销


Underline.js有,但同样地,这将仅为一个目的使用单独的库。

这将删除所有的“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(和IE6)中提供了拼接。它删除在第二个参数中传递的项数,从第一个参数指定的索引开始。

这将删除所有“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(和IE6)中提供了拼接。它从第一个参数指定的索引开始,删除在第二个参数中传递的项数。

请尝试以下操作:

treeids.splice(treeids.indexOf('b'), 1);
现在treeids将包含剩余的…这里
'b'
是要删除的元素。
indexOf
的参数可以来自变量。此外,还应检查错误:索引不应为-1。

请尝试以下操作:

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

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

仅删除元素的第一个实例,或删除元素的所有实例?@Jon元素的所有实例在我的问题中有任何错误为什么两票否决。。奇怪。。多亏了allRemove元素的第一个实例,还是所有实例?@Jon元素的所有实例有什么不对吗?我的问题是为什么两票反对。。奇怪。。多亏了这一切,任何方式都需要一些解释。这需要一些解释。但它在IE 7中是否可以按照OP的要求提供?@Jon:不,它不是,正如你从我的扩展响应中所看到的那样。@Nikc…如何使用jquery.grep做同样的事情?@Mihir:这是到文档的链接,其中包含一个示例。有关可用于将此功能添加到较旧浏览器的实现,请参阅。但在IE 7中,它是否可以按照OP的要求提供?@Jon:不,它不是,正如您从我的扩展响应中所看到的那样。@Nikc…如何对jquery.grep执行相同的操作?@Mihir:它是指向文档的链接,其中包含一个示例。有关可用于将此功能添加到旧浏览器的实现,请参阅。