【发布时间】:2016-02-16 11:53:07
【问题描述】:
我有这个简单的代码段,用于制作例如 10x10 的网格。我最近切换到 node 并且有点困惑如何让这段代码正确运行,因为我目前正在从同步的角度思考。
目前我所有的 Y 值都直接分配给 10,而没有像我预期的那样为每个 X 值分配 1、2、3、4、5。
function createHouse(size){
var tempGridItem;
var xpos = 0;
var ypos = 0;
randnum = Math.random();
gridItemArr = [[]];
for (var count = 0; count < size; count++) {
tempGridItem = new gridItem();
xpos++;
ypos = 0;
for (var count2 = 0; count2 < size; count2++) {
// X = 0, Y = 0,1,2,3,4,5...
// X = 1, Y = 0,1,2,3,4,...
// And so on
ypos++;
tempGridItem.xpos = xpos;
tempGridItem.ypos = ypos;
gridItemArr.push(tempGridItem);
}
}
console.log("GRID ITEM ARRYA LENGTH: "+ gridItemArr.length);
}
我将如何对其进行编码以使其按预期运行,是否有任何图书馆建议/材料可供阅读以了解有关这些东西如何工作的更多信息。
谢谢!
当前输出大小为 10:
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS1
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS2
YPOS: 9 , XPOS3
YPOS: 9 , XPOS3
YPOS: 9 , XPOS3
YPOS: 9 , XPOS3
等等。
【问题讨论】:
-
究竟使用回调做什么?
-
Node 中的 JavaScript 与客户端中的 JavaScript 一样同步。原生的东西,比如 for 循环等。它的 Node API(比如
fs)和其他可能有异步行为的库 API。它只是 JavaScript,核心内容的行为相同。 -
你在哪里声明了 tempGridItem 和 gridItemArr 和 size 变量?
-
感谢您的澄清,我只是很困惑我的逻辑似乎是正确的,但我的 Y 位置从未从 9 移动,这是为什么呢?
-
@Raf 我已经用我得到的结果更新了我原来的问题,tempGridItem 只是一个存储 x、y 位置和其他一些东西的对象
标签: javascript node.js for-loop