所以我使用jsfiddle.net来测试我的javascript代码。我正在使用谷歌地图API,但这对我的问题并不重要。一旦我添加了这个功能:
function testCoord(points) {
var result = false;
for (var i = 0, var j = points.length - 1; i < points.length; j = i++) {
if ((points[i].latLng.lat() > testCoord[0].latLng.lat()) != (points[j].latLng.lat() >
testCoord[0].latLng.lat()) && (testCoord[0].latLng.lng() < (points[j].latLng.lng() -
points[i].latLng.lng()) * (testCoord[0].latLng.lat() - points[i].latLng.lat()) /
(points[j].latLng.lat() - points[i].latLng.lat()) + points[i].latLng.lng())) {
result = true;
break;
}
}
return result;
}
当我使用JSHint工具时,它告诉我在for循环行上缺少分号,当我调用break
时,它表示意外。我真的不认为我错过了任何分号,但是有些错误,因为即使我从不调用该函数,地图也不会显示。我不允许用i和j声明for循环吗?经过几个小时的努力,我迷失了......
答案 0 :(得分:9)
请勿在两个地方使用var
。
for (var i = 0, j = points.length - 1; i < points.length; j = i++)
答案 1 :(得分:0)
使用for (var i = 0, j = points.length - 1; ...
尝试使用您的代码。避免使用var x = ..., var y = ...
。