2013-05-21 196 views
2

我有像數組如下如何獲得元素第二索引的數組中的JavaScript

var arr = [10,12,34,23,12,89,34,12]; 

在此,我有12三次。我想找個12的javascript.Is它的第二個索引可能找到。我嘗試了lastIndexOf()。但它沒有幫助我。有什麼方法可以找到這個。

在此先感謝...

回答

4

還有一個可能的解決方案:

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 
+0

+1感謝您的幫助 – PSR

+1

+1我認爲這是最乾淨的。我只會添加一個'(我在這個)''測試'if',以便它更像spec-like,儘管它很少會有所作爲。 – 2013-05-21 12:58:51

+0

...哦,等等,你否定'n' ...爲什麼?也許你的意思是'!!'? ...原來如此。我的頭腦是在'爲'而不是'如果'。沒關係。 – 2013-05-21 13:01:28

1

我只想循環雖然陣列使用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; 

    } 

} 
+1

+2? 'oO'有沒有人試過? 'i'沒有初始化,'index'是全局定義的...哇... – VisioN

+1

@PSR你能否發現它? – VisioN

+0

不,不,先生對不起。我刪除了我的投票 – PSR

相關問題