如何在javascript中获取数组中的第二个元素索引?
我有一个数组,如下所示:如何在javascript中获取数组中的第二个元素索引?,javascript,arrays,indexof,Javascript,Arrays,Indexof,我有一个数组,如下所示: var arr = [10, 12, 34, 23, 12, 89, 34, 12]; 在这篇文章中,我已经12三次了。我想在JavaScript中找到12的第二个索引。我尝试了lastIndexOf(),但没有帮助。有什么方法可以找到它吗?array.indexOf(searchElement[,fromIndex]) 还有一种可能的解决方案: Array.prototype.nthIndexOf = function(e, n) { var index =
var arr = [10, 12, 34, 23, 12, 89, 34, 12];
在这篇文章中,我已经12
三次了。我想在JavaScript中找到12
的第二个索引。我尝试了lastIndexOf()
,但没有帮助。有什么方法可以找到它吗?array.indexOf(searchElement[,fromIndex])
还有一种可能的解决方案:
Array.prototype.nthIndexOf = function(e, n) {
var index = -1;
for (var i = 0, len = this.length; i < len; i++) {
if (i in this && e === this[i] && !--n) {
index = i;
break;
}
}
return index;
};
[10, 12, 34, 23, 12, 89, 34, 12].nthIndexOf(12, 2);
// >> 4
Array.prototype.nthIndexOf=函数(e,n){
var指数=-1;
for(var i=0,len=this.length;i> 4
我将使用for循环遍历数组
var first = false;
var index = 0;
for(var i = 0; i<arr.length;i++)
{
if(arr[i] == 12)
{
if(first==true)
{
index = i;
}
first = true;
}
}
var first=false;
var指数=0;
对于(var i=0;iGreat solution to find second index:)请注意,arrayindexOf
方法在旧浏览器中可能无法工作,您需要使用shim.Sad但为true。这段代码在iSorry@VisioN中不起作用,所有浏览器都能用。所以我接受他的答案+2oO
有人试过吗<代码>i
未初始化,索引
是全局定义的。。。哇…@PSR你能认出它吗?+1我觉得这是最干净的。我唯一要添加的是一个(我在这里)
测试到if
,这样它更像规范,尽管它几乎不会有什么不同…哦,等等,你在否定n
…为什么?也许你的意思是代码>。。。哦,我明白了。我的心思在for
而不是if
。无所谓。@斜视它不是否定的,它是--n===0
。我用n
作为计数器。是的,我看错了。需要否定来防止破坏循环。“不知怎么的,我是从另一个角度看的。”斜视着说。顺便说一句,我同意这一点。现在它至少看起来更好了:)
var first = false;
var index = 0;
for(var i = 0; i<arr.length;i++)
{
if(arr[i] == 12)
{
if(first==true)
{
index = i;
}
first = true;
}
}