2010-12-07 118 views
0

如果我們能夠訪問元素本身,那麼在數組中找到元素位置的最有效方法是哪一種?查找數組元素的位置,使用Javascript中的元素本身變白

var arr = []; 
for (var i = 0; i < 10; i++) { 
    arr[i] = {test: Math.floor(Math.random() * 101)} 
} 
var test = arr[Math.floor(Math.random() * 11)]; 

現在我怎樣才能得到test所指的元素的位置?

+0

可能以這種方式VAR POS = Math.floor(的Math.random( )* 11); – 2010-12-07 11:09:51

回答

1

這裏產生它的時候,這樣我剛剛存儲的位置:

var arr = []; 
for (var i = 0; i < 10; i++) { 
    arr[i] = {test: Math.floor(Math.random() * 101)} 
} 
var index = Math.floor(Math.random() * 11); 
var test = arr[index]; 
//index is the position 
+0

難道那不是內存密集? (假設我有一個龐大的多維數組,其中每個單元格都被佔用) – GZaidman 2010-12-07 11:22:10

0

我假設隨機生成僅僅是一個例子。

現在如果你有一個參考到一個元素,並希望找到它的索引,你可以使用Array.indexOf方法。這是一項新功能,因此並非所有瀏覽器本身都支持它,但它很容易實現。裸骨的解決辦法是這樣的:

if (!Array.prototype.indexOf) { 
    Array.prototype.indexOf = function (searchElement) { 
    var len = this.length >>> 0; 
    for (var i = 0; i < len; i++) { 
     if (searchElement === this[i]) return i; 
    } 
    return -1; 
    }; 
} 

現在你可以使用它作爲:

index = array.indexOf(elem) // index from an element reference 
examp = [5,8,12,5].indexOf(12) // 2