我想提取纬度。和来自这样的字符串的经度值:
var data = "(-20.210696507479017, -70.14000177383423),(-20.21202551027535, -70.14246940612793),(-20.21385790460967, -70.14066696166992),(-20.21168319245841, -70.13901472091675)"
如果这些点的数量可以改变,我如何提取这些对并将它们推入一个数组?
谢谢
我想提取纬度。和来自这样的字符串的经度值:
var data = "(-20.210696507479017, -70.14000177383423),(-20.21202551027535, -70.14246940612793),(-20.21385790460967, -70.14066696166992),(-20.21168319245841, -70.13901472091675)"
如果这些点的数量可以改变,我如何提取这些对并将它们推入一个数组?
谢谢
拆分对,然后拆分每对并解析值。这会生成一个对象数组,其中的 alat
和lng
属性是数字:
var coors = data.split('),(');
for (var i = 0; i < coors.length; i++) {
var c = coors[i].replace('(', '').replace(')', '').split(',');
coors[i] = { lat: parseFloat(c[0]), lng: parseFloat(c[1]) };
}
演示:http: //jsfiddle.net/Guffa/EV2h4/
为什么不把它转换成一个json字符串数组,然后解析成一个对象。
var data = "(-20.210696507479017, -70.14000177383423),(-20.21202551027535, -70.14246940612793),(-20.21385790460967, -70.14066696166992),(-20.21168319245841, -70.13901472091675)";
var arr = JSON.parse("[" + data.replace(/[)(]/g, "") + "]");
for(var x=0; x<arr.length-1; x+=2)
console.log("lat " + arr[x] + ", lon " + arr[x+1]);
编辑x+=2,很好地抓住 Iftah