如果我們能夠訪問元素本身,那麼在數組中找到元素位置的最有效方法是哪一種?查找數組元素的位置,使用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
所指的元素的位置?
如果我們能夠訪問元素本身,那麼在數組中找到元素位置的最有效方法是哪一種?查找數組元素的位置,使用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
所指的元素的位置?
這裏產生它的時候,這樣我剛剛存儲的位置:
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
難道那不是內存密集? (假設我有一個龐大的多維數組,其中每個單元格都被佔用) – GZaidman 2010-12-07 11:22:10
我假設隨機生成僅僅是一個例子。
現在如果你有一個參考到一個元素,並希望找到它的索引,你可以使用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
可能以這種方式VAR POS = Math.floor(的Math.random( )* 11); – 2010-12-07 11:09:51