2010-06-03 50 views
0

我創建的函數將讀取不同的XML文件,每次將包含不同數量的相同節點。是否可以在變量名中使用增量值,同時在循環中聲明它?

我已經創建了一個循環,它將每個節點的ID存儲到一個數組中,現在我想爲每個數組成員創建一個變量,用於存儲每個ID的節點屬性。

因爲我的函數讀取的每個XML文檔的節點數量都不相同,所以我不能爲每個節點ID的屬性手動分配變量,但不知道要分配多少個變量,所以我創建了一個特定於我已經存儲在數組中的項目數。在這個循環內我希望能有這樣的東西:

for (i=0; i<array.length; i++) 
{ 
    var ID + i + width = exampleheight 
    var ID + i + height = exampleheight 
} 

我知道這不起作用,但試圖概述我在找什麼。聲明變量時可以使用某種變量或隨機數嗎?

回答

5

是的,但不。這是醜陋的,容易出錯。編程語言通常具有有用的數據結構,利用它們。

使用數組和對象。

var foo = []; 
for (i=0; i<array.length; i++) 
{ 
    foo[i] = { 
     width: example_width, 
     height: example_height 
    }; 
} 
+0

不能滿足... – GlenCrawford 2010-06-03 09:00:10

+0

適應症,我略微不熟悉你在那裏做了什麼。 推測'[];'將'foo'聲明爲一個數組。然後在循環中,'foo [i] = {EX1,EX2};'創建一個嵌套在由'i'表示的當前數組中的數組? – 2010-06-03 09:02:54

+1

@Jack:關閉。在循環內部,每次迭代都會創建一個新對象,並使用屬性'width'和'height',並將其分配給foo [i]。所以最後,數組'foo'包含一堆對象,每個對象都包含這兩個屬性。 – GlenCrawford 2010-06-03 09:10:52

相關問題