2011-12-09 68 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。