Javascript - 要么 Push(StringArray.split (",") 不起作用,要么循环不工作

标签 javascript string split

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

纬度、经度*纬度、经度*纬度、经度

所以我选择了有效的*

然后我在 , 上进行拆分,如果我打印特定的数组单元格,这似乎可以工作。

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

当我打印时

绳索[0, 0] + 绳索[0, 1] + "\r\n"+ 绳索[1, 0] + 绳索[1, 1] + "\r\n"+ 绳索[ 2, 0] + 绳索[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]

表达式被视为对具有 2, 1 索引的 cords 数组的访问。而 2, 1 是带有逗号运算符的 2 个数字。逗号运算符返回最后传递的操作数。因此 2, 1 实际上等于 1,因此 cords[2, 1] 转到 cords[1] >

关于Javascript - 要么 Push(StringArray.split (",") 不起作用,要么循环不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18347433/

相关文章:

c# - String.Replace(char, char) 还是 Replace(string, string)?

c++ - C++ 中只有 2 个不同字符的最长子字符串

python - 如何在 python 中遍历 map 的元素

javascript - 动态添加输入元素以形成并将值存储在数据库中

javascript - 解析标签javascript的html属性

ruby - 如何在 Ruby 中拆分 CSV 字符串?

Python - 解析、分割文本并将其分成单独的行

javascript - Hyperledger-Composer:无法从事务处理器函数中访问 javaScript split()-函数

javascript - 在 onTime 函数 jwplayer 中只执行一次 ajax 请求

导出函数中的 javascript 递归 : not a function