我是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之类的函数更轻松地对其进行迭代。

因此,我认为使用对象执行此操作不会有任何好处,也不会有所损失。坚持使用阵列。

09-25 22:07