基本上,我试图比较传入的坐标是否匹配数组列表中的项目。所以我有一个名为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,所以我将执行其他操作。

最佳答案

您是否尝试过将buslocXbuslocY转换为float类型?

buslocX = parseFloat(parts[0]);
buslocY = parseFloat(parts[1]);


split方法将字符串转换为字符串数组,在这种情况下,计算行为可能是意外的。

10-02 18:45