0

假设我有一个对象如下:

function node(xVal, yVal, nodeType) {
    this.xVal = xVal; // x-coordinate of node
    this.yVal = yVal; // y-coordinate of node
    this.nodeType = nodeType; // node type - outside the scope of this question
}

为了在 x-by-y 虚拟平面上创建一系列节点,我指定了一个二维数组,如下所示:

var ROWS = 3; // number of rows in the array
var COLS = 10; // number of columns in the array
var Nodes = new Array(ROWS);

for (var i=0; i < ROWS; i++) {
    for (var j=0; j < COLS; j++) {
        Nodes[i][j] = new node(0, 0, "Type A");
    }
}

我期待上面嵌入的 for 循环将允许我初始化 3x10 数组,每个数组都有“节点”对象,但似乎有些东西会导致错误。关于 1)可能导致错误的原因,以及 2)如何改进逻辑的任何想法将不胜感激!

4

2 回答 2

1

它导致错误,因为您没有在第一个维度上初始化新数组。尝试Nodes[i] = [];在第二个循环之前放置。

此外,您不必像这样初始化 Array。你可以杜var Nodes = [];

于 2013-06-22T20:10:30.280 回答
0

您还应该定义内部数组。

for (var i=0; i < ROWS; i++) {
    Nodes[i] = new Array(COLS);
    for (var j=0; j < COLS; j++) {
        Nodes[i][j] = new node(0, 0, "Type A");
    }
}
于 2013-06-22T20:10:03.193 回答