var xyz, i, tx = {}
// Doesn't work: var xyz, i, tx = {}
for (var i = 0; i < 5; i++) {
// Doesn't work: window.xyz, window.i, window.tx
xyz[i].tx = 5
// Doesn't work: xyz[i]["tx"] = 5
}
alert(xyz);
返回TypeError: xyz is undefined
。
我定义了变量,尝试强制作用域,尝试了两种不同的方法来调用数组。我不明白。如何让它在循环中编写变量。
答案 0 :(得分:2)
根据您为每个索引创建对象的意图,您可以初始化数组push
并使用函数var xyz = [];
for (var i = 0; i < 5; i++) xyz.push({'tx': 5});
console.log(xyz);
添加新元素。
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
Array
&#13;
另一种直接的方法是使用类from
和函数var xyz = Array.from({length: 5}, (x) => ({'tx': 5}));
console.log(xyz);
创建数组。
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
ID Amount
1 *Blank*
1 10
2 20
3 30
&#13;
答案 1 :(得分:0)
您需要检查数组是否已包含项目。如果没有,只需创建一个。您可能不需要在开头声明任何其他变量。
var xyz = [];
for (var i = 0; i < 5; i++) {
// do this if you are not changing the objects a getting to this point a second time
xyz[i] = {tx: 5};
}
alert(xyz);
查看实际操作:https://jsfiddle.net/mtr6hdty/2/
根据您在for循环中的操作,您还可以使用Ele中的简写版