生成具有子数组的数组

时间:2016-02-07 06:48:09

标签: javascript arrays

我意识到这是一种有点偏离的操作方式,但为了可能性,我想知道是否有人可以提供帮助?

这里array2保持结束状态我希望array1保持(只有我想用for循环来做。很好,每个sub_array都必须初始化为他们自己的变量,我只是想得到它array1通过循环保存N个子数组。

以下是我尝试的示例,但尝试通过字符串“编译”它不允许以可用的方式调用sub_arrays。

input/output

任何想法都会非常感激!

2 个答案:

答案 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;
&#13;
&#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这样的工具,因为它们会将你的代码放在一个函数中(你不会看到)。