2013-04-25 97 views
0

我必須通過for-loop循環遍歷對象的對象。循環用於對象數組

我想開始迭代在數組中間的索引 - 我不想從第一個元素開始。

for(var i=elementId in this._uiElementsData) 
    { 
     cont++; 

     if(cont == 1) 
     { 
      var element = this._uiElementsData[i];    
      uno = element.uiElementIndex; 
     } 
     else if(cont == 2) 
     { 
      var element = this._uiElementsData[i];    
      dos = element.uiElementIndex; 
     } 
     else if(cont > 2) break;  

    } 

我試過了,但它與數組的第一個元素開始... 我在做什麼錯?

回答

1
n = desired_start_point; 
uno = this._uiElementsData[n].uiElementIndex; 
dos = this._uiElementsData[n+1].uiElementIndex; 
tres = .. 

2

你就不能啓動的半路上指數,像這樣的?

var halfWay = (this._uiElementsData.length/2); 

// if 6 elements in the array/2 = 3, start at 3rd element 
for(var i= halfWay; i < this._uiElementsData.length, i++) 
{ 
    var index = (i + 1); // index is zero based for the array, so plus 1 
    var element = this._uiElementsData[i]; // 3rd item in the array... 
} 
0

你不是真的想要一個for..in循環這裏,只是一個for循環

// start at index 1 
for (var i = 1; i < this._uiElementsData.length; ++i) { 
    // do stuff 
} 
+0

「我有對象的數組迭代」 =>數據結構是'[{}, {},{},...]',你不應該用'for..in'來循環。 – 2013-04-25 15:32:12

+0

對不起,但我沒有解釋清楚...我真的有一個對象的對象...如果像一個數組,但不是一個真正的數組... ...所以我不能使用長度... :( – 2013-04-25 15:32:29

+0

@丹尼爾 - 一個_Object_不是/不從_Array_繼承沒有爲它的鍵定義的「順序」,所以這個問題沒有意義。 – 2013-04-25 15:35:54