Javascript 从可变长度字符串中提取lat、lng
我想从如下字符串中提取纬度和经度VAL:Javascript 从可变长度字符串中提取lat、lng,javascript,jquery,Javascript,Jquery,我想从如下字符串中提取纬度和经度VAL: 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)"
如果这些点的数量可能发生变化,我如何提取这些点对并将其推入数组
谢谢拆分这些对,然后拆分每对并解析值。这将生成一个对象数组,这些对象的
lat
和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]) };
}
var coors=data.split('),(');
对于(变量i=0;i演示:拆分对,然后拆分每对并解析值。这将生成一个对象数组,这些对象的
lat
和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]) };
}
var coors=data.split('),(');
对于(变量i=0;i演示:为什么不将其转换为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]);
var data=“(-20.21069650479017,-70.14000177383423),(-20.21202551027535,-70.14246940612793),(-20.21385790460967,-70.14066696166992),(-20.21168319245841,-70.13901472091675)”;
var arr=JSON.parse(“[”+data.replace(/[)(]/g,”+“]);
对于(var x=0;x为什么不将其转换为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]);
var data=“(-20.21069650479017,-70.14000177383423),(-20.21202551027535,-70.14246940612793),(-20.21385790460967,-70.14066696166992),(-20.21168319245841,-70.13901472091675)”;
var arr=JSON.parse(“[”+data.replace(/[)(]/g,”+“]);
对于(var x=0;xJSON.parse('{coords:['+data.replace(/\(/g,'[').replace(/\)/g,']'))+']}')
非常类似于
非常类似于。您需要x+=2来处理对,而不是x++JSON解析在这里太过分了,如果删除括号,那么您就可以使用split(',')@Iftah-JSON.parse将允许将来进行更高级的处理,比如使用正则表达式替换并创建一个{lat:##,lon:##}数组对象。使用JSON.parse还允许结果元素的类型为'number'而不是'string'。您需要x+=2来处理对,而不是x++JSON解析在这里过于复杂,如果删除括号,则可以使用split(','))@Iftah-JSON.parse将允许将来进行更高级的破坏,比如使用regex replace并创建一个{lat:##,lon:##}对象数组。使用JSON.parse还允许生成的元素类型为'number'而不是'string'。