从JavaScript中的值获取索引
是否有函数/方法从JavaScript中的值检索数组中某个项的索引 换句话说,我正在寻找Python.index()列表方法的JavaScript等价物:从JavaScript中的值获取索引,javascript,arrays,indexing,Javascript,Arrays,Indexing,是否有函数/方法从JavaScript中的值检索数组中某个项的索引 换句话说,我正在寻找Python.index()列表方法的JavaScript等价物: >>> ['stackoverflow','serverfault','meta','superuser'].index('meta') 2 轮子已经存在了还是我必须重新发明它?你可以这样做 var lookingFor = 'meta'; var arrayIndex; for (var i=0;i<array
>>> ['stackoverflow','serverfault','meta','superuser'].index('meta')
2
轮子已经存在了还是我必须重新发明它?你可以这样做
var lookingFor = 'meta';
var arrayIndex;
for (var i=0;i<array.length;i++) {
if (array[i] === lookingFor) {
arrayIndex = i;
};
};
你可以
var lookingFor = 'meta';
var arrayIndex;
for (var i=0;i<array.length;i++) {
if (array[i] === lookingFor) {
arrayIndex = i;
};
};
Array.prototype.GetIndex=函数(值)
{
for(var i=0;i
希望这有帮助。Array.prototype.GetIndex=function(value)
{
for(var i=0;i
希望这能有所帮助。您的功能是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;
});
[].indexOf | |(Array.prototype.indexOf=function(v){
对于(var i=this.length;i--&this[i]!==v;);
返回i;
}); 你的函数是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;
});
[].indexOf | |(Array.prototype.indexOf=function(v){
对于(var i=this.length;i--&this[i]!==v;);
返回i;
}); 这类事情通常是通过口述来完成的,你能用它来代替吗。我不确定代码的其余部分如何依赖于此结构。否则,你就得自己动手了。这类事情通常是用口述完成的,你能用它来代替吗。我不确定代码的其余部分如何依赖于此结构。否则,您几乎必须自己动手。您正在寻找“indexOf”方法。它在Mozilla中可用,但在IE中不可用。但是,在IE中添加对它的支持是很容易的(假设您同意更改Array.prototype的想法——这就是您不想这样做的原因。) 以下是参考实施,摘自上页:
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;
};
}
if(!Array.prototype.indexOf)
{
Array.prototype.indexOf=函数(elt/*,from*/)
{
var len=this.length>>>0;
var from=Number(参数[1])| | 0;
from=(from<0)
?数学单元(来自)
:数学。地板(从);
如果(从<0开始)
from+=len;
for(;from
祝你好运 您正在寻找“indexOf”方法。它在Mozilla中可用,但在IE中不可用。但是,在IE中添加对它的支持是很容易的(假设您同意更改Array.prototype的想法——这就是您不想这样做的原因。)
以下是参考实施,摘自上页:
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;
};
}
if(!Array.prototype.indexOf)
{
Array.prototype.indexOf=函数(elt/*,from*/)
{
var len=this.length>>>0;
var from=Number(参数[1])| | 0;
from=(from<0)
?数学单元(来自)
:数学。地板(从);
如果(从<0开始)
from+=len;
for(;from
祝你好运 这是一个针对数组的javascript修复程序,适用于IE中不支持的每种arrayNot类型,以及其他一些较旧的浏览器。您应该在存在索引的地方使用indexOf,并使用此处列出的功能之一作为回退。我不明白为什么我的答案为负值?您的实现看起来更像
lastIndexOf
。鉴于indexOf
的语义要求您在数组中向前循环,而不是向后循环。+1到crescentfresh注释,它应该返回第一次出现的索引。这是一个针对数组的javascript修复程序,适用于IE不支持的每种类型的数组,以及其他一些较旧的浏览器。您应该在存在索引的地方使用indexOf,并使用此处列出的功能之一作为回退。我不明白为什么我的答案为负值?您的实现看起来更像lastIndexOf
。鉴于indexOf
的语义要求在数组中向前循环,而不是向后循环。+1对于crescentfresh注释,它应该返回第一次出现的索引。