是否有一個函數/方法從JavaScript中的值中檢索數組中項目的索引?從JavaScript中獲取索引值
換句話說,我在找的JavaScript相當於一個爲Python 的.index()列表方法:
>>> ['stackoverflow','serverfault','meta','superuser'].index('meta')
2
是否輪已經存在或有我要重塑呢?
是否有一個函數/方法從JavaScript中的值中檢索數組中項目的索引?從JavaScript中獲取索引值
換句話說,我在找的JavaScript相當於一個爲Python 的.index()列表方法:
>>> ['stackoverflow','serverfault','meta','superuser'].index('meta')
2
是否輪已經存在或有我要重塑呢?
您正在尋找「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;
};
}
祝你好運!
你可以做
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;
};
};
};
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'));
希望這有助於。
您的函數的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; });
這種類型的東西通常是用一個字典做,你能使用來代替。我不確定代碼的其餘部分如何依賴於此結構。否則,你幾乎不得不推出自己的。
有什麼具體的投票原因嗎? – dharga 2009-09-23 14:57:11
這是否適用於數組或字符串? – alex 2009-09-23 13:12:17
這是一個針對數組的JavaScript修補程序,適用於每種類型的數組 – Myra 2009-09-23 13:16:25
不支持在IE中加上其他一些舊版瀏覽器。你應該使用indexOf它存在的位置以及後退,例如此處列出的其中一個函數。 – 2009-09-23 13:26:27