0

JavaScript でいくつか質問があります。

私はデータ構造を持っています。このようなもの:

var Data = 
{
    head:    ["ID", "Name", "Age"],
    rows: [
             ["0", "Bob", "23"],
             ["1", "Sam", "24"],
             ["2", "Tom", "25"]
             // and so on
          ]
}

このデータを処理する機能があります。for..inこの関数は、ステートメント内の行フィールドを処理する必要があります。

$scope.someDate = $filter('filter')($scope.data.rows, function (item) {
  for(var val in item) {
     // some logic...
   }
   // some logic...
});

そして問題は以下。FOR ループでは、(データ形式に応じて) 3 つの属性を指定する代わりに、4 つの属性を指定します。4 番目の属性はハッシュ キーです。このため、問題があります。これを修正、変更、またはバイパスする方法を知っている人はいますか?

4

1 に答える 1

1

あなたの場合、rows配列の配列です。行のすべての要素 (配列) が に渡されitemます。今、アイテムは配列です。この例によると、

var Data = 
{
    head:    ["ID", "Name", "Age"],
    rows: [
             ["0", "Bob", "23"],
             ["1", "Sam", "24"],
             ["2", "Tom", "25"]
             // and so on
          ]
};

Data.rows.forEach(function(item) {
    console.log(item);
})

印刷します

[ '0', 'Bob', '23' ]
[ '1', 'Sam', '24' ]
[ '2', 'Tom', '25' ]

ここで、この配列のすべての要素を処理する必要がある場合は、itemそれを反復処理する必要があります。

Data.rows.forEach(function(item) {
    for (var i = 0, len = item.length; i < len; i += 1) {
        console.log(item[i]);
    }
})

これで印刷されます

0
Bob
23
1
Sam
24
2
Tom
25

注:for..in配列の反復には使用しないでください。詳細な説明については、この回答をお読みくださいhttps://stackoverflow.com/a/500531/1903116

于 2013-09-29T18:10:09.287 に答える