我是JS的新手,例如,我想通过For循环自动设置新变量:
var mybox0
var mybox1
等等...
var board = document.getElementById('board');
var boxes = [];
for(var i=0; i<9; i++){
var myBox = document.createElement('div');
board.appendChild(myBox);
myBox.id = "box" + i;
boxes.push(myBox);
}
最佳答案
欢迎使用JavaScript!折叠起来总是很高兴。
简短的答案是,这在JavaScript中是不可能的。您确实有两种选择。您已经实现了第一个:数组。这是一个不错的选择,我个人会选择一个。
在问题注释中提到的另一种方法是使用对象。代码看起来像这样:
var board = document.getElementById('board');
var boxes = {};
for(var i = 0; i < 9; i++) {
var myBox = document.createElement('div');
board.appendChild(myBox);
myBox.id = "box" + i;
boxes['mybox' + i] = myBox;
}
然后,您可以像这样引用变量:
boxes.mybox0;
boxes.mybox1;
代替这个:
boxes[0];
boxes[1];
我对for循环内的代码的看法是,数组代码比目标代码更具可读性。使用生成的对象的代码对于数组代码同样可读。此外,该数组具有更多用途,因为您可以使用
.map
和.forEach
之类的函数更轻松地对其进行迭代。因此,我认为使用对象执行此操作不会有任何好处,也不会有所损失。坚持使用阵列。