-1

ループ内のアイテムを反復ごとに異なるタイプにキャストする方法を探しています。このようなもの:

for (var i = 0; i < 100; i++)
for (var j = 0; j < 100; j++)
  newArr.push({
    date:arrA[i].subArr[j].myDate, 
    points+i:arrA[i].subArr[j].myPoints,
    league+i:arrA[i].subArr[j].myLeague
  });

そのようなことは可能ですか?

4

3 に答える 3

2

オブジェクトを作成し、後で配列に追加する前にプロパティを変更しようとしましたか?

for (var i = 0; i < 100; i++){
    for (var j = 0; j < 100; j++){
        var tmp = {};
        tmp['date'] = arrA[i].subArr[j].myDate;
        tmp['points'+i] = arrA[i].subArr[j].myPoints;
        tmp['league'+i] = arrA[i].subArr[j].myLeague;
        newArr.push(tmp);
    }
}
于 2012-04-12T19:53:20.080 に答える
2

そのアプローチはあまり意味がないと思います。作成するオブジェクトごとに完全に別個の「インデックス」プロパティを設定する方がよいでしょう。

for (var i = 0; i < 100; i++)
  for (var j = 0; j < 100; j++)
    newArr.push({
      index: i,
      date: arrA[i].subArr[j].myDate, 
      points: arrA[i].subArr[j].myPoints,
      league: arrA[i].subArr[j].myLeague
    });

そうすれば、すべてのオブジェクトが同じように見え、それぞれに0から99の範囲の「インデックス」プロパティがあります。

于 2012-04-12T19:56:24.647 に答える
0

オブジェクト初期化子のプロパティ名は任意の式ではない可能性があるため、これは無効な構文です。

newArr.push({
    "points" + i: arrA[i].subArr[j].myPoints
});

ただし、添え字には任意の式を使用できます。

var tmp = {};
tmp["points" + i] = arrA[i].subArr[j].myPoints;
...
newArr.push(tmp);
于 2012-04-12T19:58:07.677 に答える