我意识到这是一种有点偏离的操作方式,但为了可能性,我想知道是否有人可以提供帮助?
这里array2保持结束状态我希望array1保持(只有我想用for循环来做。很好,每个sub_array都必须初始化为他们自己的变量,我只是想得到它array1通过循环保存N个子数组。
以下是我尝试的示例,但尝试通过字符串“编译”它不允许以可用的方式调用sub_arrays。
input/output
任何想法都会非常感激!
答案 0 :(得分:1)
var numberOfSubArrays = 3
var sub_array1 = [1]
var sub_array2 = [2]
var sub_array3 = [3]
var array1 = []
// we don't need array2 at all
//var array2 = [sub_array1,sub_array2,sub_array3]
// you need to count from 1..n, as you named your sub_arrays like that
for (var i = 1; i <= numberOfSubArrays; i++) {
// you can use eval, but be careful, eval is evil!
array1[i-1] = eval("sub_array" + i)
}
console.log(array1);
&#13;
答案 1 :(得分:1)
使用eval
很难过。这适用于浏览器:
var numberOfSubArrays = 3
var sub_array1 = []
var sub_array2 = []
var sub_array3 = []
var array1 = []
var array2 = [sub_array1,sub_array2,sub_array3]
for (var i = 0; i < numberOfSubArrays; i++) {
array1[i] = window["sub_array" + i + 1];
}
在浏览器中,&#34;全球&#34; vars实际上是&#34; window&#34;中的对象。 注意:这不适用于像jsfiddle这样的工具,因为它们会将你的代码放在一个函数中(你不会看到)。