2D JS Array为每个索引分配值

时间:2013-12-24 21:32:58

标签: javascript arrays multidimensional-array

这将是一个愚蠢的问题。但是为什么下面的代码没有为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)
    } }

1 个答案:

答案 0 :(得分:2)

创建array时,会为其指定一个值([]),该值将转到索引0

在它周围的第一个循环中,j0array[j]是一个数组,您可以为任何array[j][k]分配值。

在其周围的第二个循环中,j1array[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)
    }
}