基本上,我试图比较传入的坐标是否匹配数组列表中的项目。所以我有一个名为busList的数组,其数组项的格式如下:
27794.27939,43930.90485
然后,我尝试遍历数组以比较传入的坐标。传入的坐标是两个变量:coordx和coordy。
for(var i = 0; i < busList.length; i++){
var parts = busList[i].split(",");
buslocX = parts[0];
buslocY = parts[1];
if((coordx - buslocX < 0.0050) && (coordy - buslocY < 0.0050)){
console.log(coordx - buslocX);
}
}
如果坐标-数组中的x坐标以及y都小于0.0050,那么我将执行其他操作。使用这些代码,我试图打印减号的结果,但是控制台中什么也没得到。
有任何想法吗?提前致谢。
简而言之,我正在尝试检查coordx,coordy是否匹配数组中的任何项目。但是coordx与数组项的坐标会有细微的差别,例如0.0050。例如,我得到了数组的坐标列表:
27794.27939,43930.90485
27539.43390,43422.26042
我传入的坐标是27794.27920,坐标是43930.90480。因为coordx和coordy都比数组中的第一个项少0.0050,所以我将执行其他操作。
最佳答案
您是否尝试过将buslocX
和buslocY
转换为float类型?
buslocX = parseFloat(parts[0]);
buslocY = parseFloat(parts[1]);
split
方法将字符串转换为字符串数组,在这种情况下,计算行为可能是意外的。