Javascript 如何在JS中有效地将纬度/经度点字符串解析为对象数组?

Javascript 如何在JS中有效地将纬度/经度点字符串解析为对象数组?,javascript,Javascript,我收到一系列的纬度/经度点(来自第三方),其格式如下(当然可以有两对以上): 我想将该字符串转换为如下对象数组: [{lat: 49.0000, lng: -105.0000}, {lat: 49.0000, lng: -110.0000}] 我想在纯JavaScript中实现这一点,但如果jQuery大大简化了代码,我将开放使用jQuery 目前,我在源字符串上使用了一些正则表达式和子字符串,但我想知道是否有更优雅的方法来进行这种转换,而我可能错过了这种转换?使用JSON.parse(dat

我收到一系列的纬度/经度点(来自第三方),其格式如下(当然可以有两对以上):

我想将该字符串转换为如下对象数组:

[{lat: 49.0000, lng: -105.0000}, {lat: 49.0000, lng: -110.0000}]
我想在纯JavaScript中实现这一点,但如果jQuery大大简化了代码,我将开放使用jQuery

目前,我在源字符串上使用了一些正则表达式和子字符串,但我想知道是否有更优雅的方法来进行这种转换,而我可能错过了这种转换?

使用
JSON.parse(dataString)
来实现带有lat/lng字段的对象数组。如果无法解决您的问题,请提供补充信息。

您可以尝试:

//您的第三方字符串
变量字符串='[(49.0000,-105.0000),(49.0000,-110.0000)];
//使其成为有效的位置数组
//-基本上将括号改为括号
var array=string.replace(/[()]/g,函数(d){
返回{
'(' : '[',
')' : ']',
}[d] );
});
//现在它是有效的,解析它
array=JSON.parse(array);
//每个项目的lat/long分别位于0/1位置
var result=array.map(函数(项){
返回{
lat:项目[0],
液化天然气:第[1]项,
};
});

控制台日志(结果)
我想您可以将所有
替换为
{
),将
替换为
}
,然后执行JSON.parse()。但是,是的,为了替换所有你需要的正则表达式,你尝试了一些东西,对吗?我的意思是,一个拥有超过13K rep的用户知道他们需要展示他们尝试过但没有成功的东西,对吗?@j08691是的,这是一系列丑陋的子字符串和字符串替换,每个人都可以做到。我的问题不是如何使我当前的代码工作,而是“是否有一种更优雅的方法来实现它”。
[{lat: 49.0000, lng: -105.0000}, {lat: 49.0000, lng: -110.0000}]