2013-08-05 52 views
0

使用for in循環遍歷javascript對象時,如何訪問for循環內的迭代器的位置?我怎樣才能得到在javascript中的(...在...)循環的位置?

a = {some: 1, thing: 2}; 

for (obj in a) { 
    if (/* How can I access the first iteration*/) { 
     // Do something different on the first iteration 
    } 
    else { 
     // Do something 
    } 
} 
+4

無法保證哪個屬性會先迭代。我不關心哪一個是第一個,但你只是想要第一個,不管它是什麼,然後使用一個變量作爲第一次迭代中設置的標誌。 –

回答

1

Javascript對象的屬性沒有排序。 {some: 1, thing: 2}相同{thing: 2, some: 1}

但是,如果你想跟蹤使用迭代無論如何,這樣做:我所知,沒有天生的辦法做下去

var i = 0; 
for (obj in a) { 
    if (i == 0) { 
     // Do something different on the first iteration 
    } 
    else { 
     // Do something 
    } 
    i ++; 
} 
+0

對於OP:甚至不考慮嘗試這一點。 – Mics

1

據,而且也沒有辦法要知道哪個是第一個項目,屬性的順序是任意的。如果有一件事你只想做一次,那簡直太簡單了,你只需保留一個手動迭代器,但我不確定這是否是你要求的。

a = {some: 1, thing: 2}; 
var first = true; 

for (obj in a) { 
    if (first) { 
     first = false; 
     // Do something different on the first iteration 
    } 
    else { 
     // Do something 
    } 
} 
相關問題