为什么这个for循环没有在传递的参数中正确读取它?

时间:2017-01-20 16:47:09

标签: javascript openlayers-3

以下是我的代码

function generateGrid(spacing, boundBox, geometry) {
    console.log(spacing);
    console.log(boundBox);
    var grid = [];
    console.log(spacing);
    for (var x = boundBox[0]; x < boundBox[2]; x = x + spacing) {
        for (var y = boundBox[1]; y < boundBox[3]; y = y + spacing) {
            if(geometry.intersectsCoordinate([x, y])) grid.push([x, y]);
            console.log(boundBox[3] - y)
        }
        console.log(boundBox[1] - x)
    }
    console.log(grid);
}

console output

如果spacing10000之类的数字替换,则for循环执行正常。

2 个答案:

答案 0 :(得分:3)

在您的控制台屏幕截图中,传入的参数似乎是字符串"10000",而不是数字10000

检查调用函数的代码,或转换为函数内的整数,例如使用parseInt(spacing)

作为帮助发现任何类似问题的提示,Chrome的console.log以蓝色显示数值,以黑色显示字符串值。

答案 1 :(得分:1)

x是一个数字,所以使用String(x),所以你在两个字符串之间使用operator +,这会给你“15”+“1”=“151”,但这可能不是你想要的