让我说我有
var per_day = [];
var data = [];
var limits = [3, 7];
for(var j in limits){
for(var k = 1; k <= limits[j]; k++){
per_day[k] = getInputValues("ge",limits[j],k);
}
data[j] = per_day;
}
getInputValues()返回数组。在{for(var j in limits)}第一次迭代时,它返回包含3个元素的数组,并将此数组放入另一个数组(data [0])。但在第二次迭代时,它返回7个元素并覆盖第一个数组(data [1]覆盖数据[0])。所以当我在console.log()时,我得到2个相同的数组(第二个数组重复)。如何解决?我想制作包含2个不同数组的数组
data[0] = array; // with any length
data[1] = array; // with any length
答案 0 :(得分:0)
在循环内移动per_day
的初始化。目前您只是声明一次,因此它被重新用作data[0]
和data[1]
。
var data = [];
var limits = [3, 7];
for(var j in limits){
////////////////////////////////////////////
// MOVE THIS INITIALIZATION INSIDE LOOP!!!
var per_day = [];
////////////////////////////////////////////
for(var k = 1; k <= limits[j]; k++){
per_day[k] = getInputValues("ge",limits[j],k);
}
data[j] = per_day;
}