-2

現在、オブジェクトの配列を html テーブルの行として表示しようとしています。私は JavaScript が初めてで、配列内の個々の要素にアクセスするのに問題があります。

コンソールでは、配列は次のとおりです。 [オブジェクト、オブジェクト、オブジェクト、... オブジェクト、オブジェクト、オブジェクト] 合計 65 個のオブジェクト。

各オブジェクトには id というフィールドがあり、コンソールの各オブジェクトは次のように表示されます。

0: Object

  ...

  id:   10

  ...

次のコードで id にアクセスしようとしました:

for (var item in data) {
    console.log(item);
    console.log(item['id']);
}

これにより、オブジェクト番号の後に undefined という行が表示されます。コンソールで見ることはできるのでデータに値があることはわかっていますが、ドット表記や上記の表記ではアクセスできません。どんな援助でも大歓迎です。

4

6 に答える 6

5

ループを使用するfor..inと、キーを反復処理します。次にdata[item]['id']、その値を取得するために使用する必要があります。

ただし、for..inループを使用して配列を反復処理しないでください (スパースでない限り)。代わりに、これを試してください:

for( var i=0, l=data.length; i<l; i++) {
    console.log(i);
    console.log(data[i]['id']);
}
于 2013-04-16T18:28:54.913 に答える
2

を使用するだけでアクセスできますdata[item].idfor-in実際、ループ内のアイテムはインデックスを提供します。

元:-

data=[
    {
        id:1
    },{
        id:2
    },{
        id:3
    },{
        id:4
    }
    ];
for(var ind in data)
{
    alert(data[ind].id);
}
于 2013-04-16T18:28:27.827 に答える
1

私はあなたが探していると信じています:

for(var i=0;i<arrayname.length;i++){
...
}
于 2013-04-16T18:28:27.900 に答える
1

あなたのオブジェクトには配列が含まれており、その配列にはインデックスにオブジェクトが含まれているため、未定義になっています。フォーマットは次のようになります。

0:obj1
1:obj2

配列インデックスを無視してオブジェクトに直接アクセスしようとしています。

これを試して。

for(var j=0; j<data.lenght; j++){
console.log(item[j]['id']);

}
于 2013-04-16T18:28:46.037 に答える
1

for ステートメントが正しくありません。

これを試して:

for(var item in data){
  var dataItem = data[item];

   console.log(dataItem.id);
}

一般的には、 for..in ループではなく for ループを使用して配列アイテムをループする方が良いと思うので、これはより良いかもしれません:

var dLength = data.length;
for(var i=0; i<dLength; i++){
  var dataItem = data[i];

  console.log(dataItem.id);
}
于 2013-04-16T18:29:03.157 に答える