这将是一个愚蠢的问题。但是为什么下面的代码没有为j和k的每个corressponding索引分配55次32次?
var array= new Array([]);
var rows=8;
var cols=4;
for (var j=0; j< 8; j++){
for (var k=0; k<4; k++){
array[j][k]=55;
console.log(j, k)
} }
答案 0 :(得分:2)
创建array
时,会为其指定一个值([]
),该值将转到索引0
。
在它周围的第一个循环中,j
为0
,array[j]
是一个数组,您可以为任何array[j][k]
分配值。
在其周围的第二个循环中,j
为1
,array[j]
为undefined
,您无法为属性undefined
分配值
每次绕过外循环时都需要创建一个数组。
// var array= new Array([]);
// Don't mix array literal and Array constructor syntax.
// Only create one array here.
var array = [];
var rows=8;
var cols=4;
for (var j=0; j< 8; j++){
// Create the array to hold the second dimension here
array[j] = [];
for (var k=0; k<4; k++){
array[j][k]=55;
console.log(j, k)
}
}