假设我有一个如下对象:
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数组,每个数组都带有'node'对象,但似乎有些东西导致错误。任何想法1)可能导致错误的原因,以及2)如何改进逻辑将非常感激!
答案 0 :(得分:1)
由于您未在第一维上初始化新数组,因此导致错误。尝试在第二次循环之前放置Nodes[i] = [];
。
此外,您不必像这样初始化数组。你可以只是var Nodes = [];
答案 1 :(得分: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");
}
}