我在以下配置中从数据库中返回了可变数量的经纬度

lat,lon*lat,lon*lat,lon

因此,我在有效的*上进行了拆分。

然后我拆分,,如果我打印特殊的数组单元格,它似乎可以工作。

当我尝试执行以下操作时,一切都会变得糟透了。

当我打印时

cords[0, 0] + cords[0, 1] + "\r\n" + cords[1, 0] + cords[1, 1] + "\r\n" + cords[2, 0] + cords[2, 1] + "\r\n"

等等,每一行的纬度和经度都相同

 41.47033705-81.93612862
 41.47033705-81.93612862
 41.47033705-81.93612862
 41.47033705-81.93612862
...


我昨晚整晚调试了这个东西,然后今晚几个小时调试了一下,我似乎找不到错误。

                var cords = [];
                var response = xmlhttp.responseText;
                var locs = response.split("*");

                for(var len = 0; len < locs.length; len++)
                {
                    var temp = String(locs[len]).split(",");
                    if (temp.length > 1)
                        cords.push(temp[0],temp[1]);

                }


我也尝试过cords.push(temp)也不起作用

最佳答案

如果要使用二维数组,则需要使用:

cords.push([temp[0],temp[1]]);


而是将其寻址为cords[0][0],依此类推。这样,您将拥有一个由N个元素组成的数组,每个元素都是一个由2个元素组成的数组。

解释为什么您的代码不起作用:

cords[2, 1]


表达式被视为使用cords索引访问2, 1数组。而2, 1是2个数字,带逗号运算符。逗号运算符返回最后传递的操作数。所以2, 1实际上等于1因此cords[2, 1]进入cords[1]

关于javascript - Javascript-push(String Array.split(“,”)不起作用或循环不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18347433/

10-12 02:25