2016-12-25 6 views
-2

プロパティの値を取得できない配列があります。たとえば :配列内のプロパティを取得する

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

「ID」を取得しようとしたとき、私は固定の番号を使用しないように、配列内の項目数が動的です。私はこのようなループ関数を使用しますfor(i=0;i<array.data.length;i++)アイテムの数が問題の動的な数を解決することが満たされるまで数値をループします。しかし、問題は、私が"id"のために "id"の値を呼び出すためにarray.data[i].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 
} 

- あなたのケースでは、あなたはあなたのコードは非常に、非常に壊れてダブル1

//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] 

を私はまだあなたが求めているもの見当がつかないそれがどのように役立つか、などがあります。

関連する問題