2016-12-25 27 views
-2

我有一個數組,我無法從中獲取屬性的值。 例如:獲取數組中的屬性

{ 
    "data": { 
     "1": { 
      "id": 1, 
      } 
     } 
    "data": { 
     "2": { 
      "id": 2, 
      } 
     } 
} 

數組中的項目數是動態的,所以試圖讓「身份證」,當我不使用固定的數量。我使用了這樣的循環函數,如for(i=0;i<array.data.length;i++),然後循環遍歷數字,直到滿足條目數量來解決項目的動態數量問題。但問題在於,當我嘗試呼叫"id"時,使用array.data[i].id來呼叫「id」的值。我得到的全部是TypeError: Cannot read property "id" of undefined

所以我的問題是,我如何獲得「ID」的價值? PS:對不起,如果我的格式很奇怪,或馬虎。這是我的第一篇文章,以stackoverflow。

+1

這不是一個數組,它是一個對象。 – Dekel

+1

顯示您的實際和有效的輸入結構 – RomanPerekhrest

+1

json數據看起來格式不正確:5個大括號和2個關閉的數據 –

回答

-1

難道你不能只用var key in array

這就像這樣:

for(var key in array){ 
    var myData = array[key]; 

    console.log(myData.id); // should return your data object 
} 

- 在你的情況,你可能需要一個雙重一個

//access the array with the sub-arrays: 
for(var key in array){ 
    var myData = array[key]; 

    //access the data sub-array 
    for(var dataKey in myData){ 
    var id = myData[dataKey].id 
    }  

} 
+0

這似乎解決了我的問題,謝謝。 – L3gionOfDooM

0

你的代碼是非常,非常壞了。首先,讓我們用JSON解決你的問題。

[ 
    { 
     "1": { 
      "id": 1 
     } 
     }, 
    { 
     "2": { 
      "id": 2 
      } 
     } 
] 

看到,因爲這是沒用的,古怪的完成數據,你可以通過做查找某一項目的ID:

arr[n][n+1] 

我仍然不知道你問什麼,你正在嘗試要做什麼,或者這很有用。