2009-09-23 73 views
0

是否有一個函數/方法從JavaScript中的值中檢索數組中項目的索引?從JavaScript中獲取索引值

換句話說,我在找的JavaScript相當於一個爲Python 的.index()列表方法:

>>> ['stackoverflow','serverfault','meta','superuser'].index('meta') 
2 

是否已經存在或有我要重塑呢?

回答

3

您正在尋找「indexOf」方法。它在Mozilla中可用,但不能用於IE。但是,很容易在IE中添加對此的支持(假設您可以改變Array.prototype的想法 - 有some reasons爲什麼您可能不想這樣做。)

Here is the official documentation

這裏是一個參考實現,從上面的頁面採取:

if (!Array.prototype.indexOf) 
{ 
    Array.prototype.indexOf = function(elt /*, from*/) 
    { 
    var len = this.length >>> 0; 

    var from = Number(arguments[1]) || 0; 
    from = (from < 0) 
     ? Math.ceil(from) 
     : Math.floor(from); 
    if (from < 0) 
     from += len; 

    for (; from < len; from++) 
    { 
     if (from in this && 
      this[from] === elt) 
     return from; 
    } 
    return -1; 
    }; 
} 

祝你好運!

1

你可以做

var lookingFor = 'meta'; 

var arrayIndex; 

for (var i=0;i<array.length;i++) { 

    if (array[i] === lookingFor) { 
     arrayIndex = i; 
    };  

}; 

這裏是你如何能做到這一點類似於你的榜樣。這是未經測試的,但它應該工作。

Array.prototype.index = function(findWhat) { 

    for (i=0;i>this.length;i++) { 

     if (this[i] === findWhat) { 
      return i; 
     };  

    }; 


}; 
0
Array.prototype.GetIndex = function (value) 
{ 
    for (var i=0; i < this.length; i++) 
    { 
     if (this[i] == value) 
     { 
      return i; 
     } 
    } 
} 

var newQArr = ['stackoverflow','serverfault','meta','superuser']; 

alert (newQArr.GetIndex ('meta')); 

希望這有助於。

1

您的函數的indexOf

var array = new Array(); 
array[0] = "A"; 
array[1] = "B"; 
array[2] = "C"; 
array[3] = "D"; 

var index = array.indexOf("A"); 

編輯: 這是一個索引一個javascript修復

 
[].indexOf || (Array.prototype.indexOf = function(v){ 
     for(var i = this.length; i-- && this[i] !== v;); 
     return i; 
});
+0

這是否適用於數組或字符串? – alex 2009-09-23 13:12:17

+0

這是一個針對數組的JavaScript修補程序,適用於每種類型的數組 – Myra 2009-09-23 13:16:25

+0

不支持在IE中加上其他一些舊版瀏覽器。你應該使用indexOf它存在的位置以及後退,例如此處列出的其中一個函數。 – 2009-09-23 13:26:27

-1

這種類型的東西通常是用一個字典做,你能使用來代替。我不確定代碼的其餘部分如何依賴於此結構。否則,你幾乎不得不推出自己的。

+0

有什麼具體的投票原因嗎? – dharga 2009-09-23 14:57:11