2011-10-30 117 views
0

我需要迭代JSON對象中的每個元素,並且在計算該對象中元素數量的方法時遇到問題,因此我可以使用for循環來迭代。這是我的目標:返回JSON對象的元素數量

this.worldData =[ 
        {"0":{"1":"0", "2":"0"}, 
        "1":{"1":"0", "2":"0"}, 
        "2":{"1":"0", "2":"0"}} 
       ]; 

什麼我想:

alert(this.worldData.length); 

問題是,它總是返回1,不管我有多少元素放進JSON對象。

回答

1

您是否可以控制JSON數據?由於數組中只有一個元素,因此長度將返回1。這是因爲JSON數據在這裏構造的方式。如果你想要的東西更容易遍歷,你會想是這樣的:

this.worldData = [ 
        {"1":"0","2":"0"}, 
        {"1":"0","2":"0"}, 
        {"1":"0","2":"0"} 
       ] 

注意的對象(與{}表示)沒有length屬性,而陣([]表示)做的。

0

將所有對象包裝在單個對象中(第一個和最後一個花括號)。試試這個:

this.worldData =[ 
    {"0":{"1":"0", "2":"0"}}, 
    {"1":{"1":"0", "2":"0"}}, 
    {"2":{"1":"0", "2":"0"}} 
]; 

jsFiddle example