在循环中初始化多个JavaScript数组是否可行?

5
假设我有一个for循环,我想在该循环中初始化多个数组。可以像这样实现吗?:
for (var i = 0; i < 5; i++){
  var array+i = [];
}

这样创建的数组将是array0、array1、array2、array3和array4吗?
非常感谢您的帮助 :)
7个回答

4
您可以使用多维数组来解决这个问题:
for(var i=0;i<5;i++){
  var array[i]=[];
}

这将导致:
array[0] = []
array[1] = []
array[2] = []
array[3] = []
array[4] = []

希望这能有所帮助 :)

1

你可能可以通过eval来解决它,

for (var i=0;i<5;i++) {
 eval("var array"+i+"=[];");
}

但是 eval 是邪恶的,更有意义的做法是使用二维数组。


1
你可以创建一个数组的数组。
var arr = [];
for (var i = 0; i < 5; i++) {
    arr[i] = [];
}

或者如果它必须是全局变量(可能不是一个好主意):

for (var i = 0; i < 5; i++) {
    window["array" + i] = [];
}

1

0

0

初始化10个空数组的示例:

let subArrays = Array.from({length: 10}, () => []);

-1

如果你在浏览器中并且愿意使用一些hacky的方法,你可以使用顶层对象,即window

for (var i = 0; i < 5; i++) {
  window["array" + i] = [];
}

完成这个操作后,你就能够以array1或任何你想要的数字来引用每个数组。

然而,应该注意到你实际上永远不需要使用这种方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接