我正在寻找一种方法,在每次迭代中将循环中的项目转换为不同的类型。像这样:
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
});
这样的事情可能吗?
答案 0 :(得分: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);
}
}
答案 1 :(得分: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
});
这样所有对象看起来都很相似,每个对象的“index”属性范围为0到99.
答案 2 :(得分:0)
object initializers中的属性名称可能不是任意表达式,因此语法无效:
newArr.push({
"points" + i: arrA[i].subArr[j].myPoints
});
但是,您可以在下标中使用任意表达式:
var tmp = {};
tmp["points" + i] = arrA[i].subArr[j].myPoints;
...
newArr.push(tmp);