我正在2D阵列上进行多次传递操作。基本上是这样的:
function heightMap() {
var seedList = [],
tileList = [];
//forloop filling tileList
while(seedList.length<20) {
var tile = tileList[randomX][randomY];
//do stuff to tile
seedList.push(tile);
}
for(var x in tileList) {
for(var y in tileList {
var tile = tileList[x][y];
//do stuff to tile
}
}
}
JS-Hint说tile已在for循环下定义。什么?是对的吗?这与我对范围的理解不符。 IDK如果值得注意,但一切都运行良好。
答案 0 :(得分:2)
JavaScript只有函数范围。这两个循环都在同一个函数中,因此它们在同一范围内,因此for循环中的tile
与while循环中的{{1}}相同。
答案 1 :(得分:1)
如果您可以使用ES6 let语句代替 var
,则可以使用块范围定义变量。例如,Node.js版本4及更高版本支持使用let语句。