2012-03-30 15 views
0

這種性質的量應該是很容易的,但我不知道該怎麼做。獲得在隨後的對象,讓他們的最後一個for循環

我有這樣的對象:

var obj = eval(result); 

現在我想知道有多少屬性包含把它放在一個循環

var finalAmount = obj.length; 

現在我去的循環

for (var i in obj) { 
    --- some other code in here 

現在,我在循環到達obj的最終屬性時需要做些什麼,所以這就是我試過的:

if (i+1 == finalamount){ 
    //do something 
} else { 
    //do something else 
} 

所以基本上使用i作爲指針比較它包含多少項目有var和發現的則循環做一些最後的一個......

+0

[不使用eval!(https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/eval#Don't_use_eval!),也obj.length是不大可能奏效,除非你eval返回的東西就像一個字符串或數組。你最後想要做什麼? – 2012-03-30 08:59:09

回答

0

在這種情況下,當i不一定是數字,所以i+1可能不會給你想要的結果。您應該設置一個單獨的計數器變量,在每次循環迭代結束時遞增。

+0

謝謝你,我用了單獨的櫃檯,現在它完美的工作! – 2012-03-30 09:36:09

0
  1. 在你的情況OBJ必須是一個數組。如果不是,i + 1會拋出錯誤。
  2. 的for-in循環不能確保任何序列順序,即使它是一個陣列,它僅用於迭代無序性。您需要傳統for(index=0;index<length;index++)(如果它是一個數組)
  3. 如果obj變量爲一個對象而不是數組,你不能得到「最後一個屬性」只與對象的數據結構,就必須提供更多的信息(產權制度)。
相關問題