2017-09-29 31 views
-5

如何从JavaScript中的数组中删除双引号?在JavaScript中删除数组中的双引号

我的数据,该多边形坐标谷歌地图

["{lat:-8.089057558100306,lng:112.15251445770264}", "{lat:-8.100954123313068,lng:112.15251445770264}", "{lat:-8.100954123313068,lng:112.1782636642456}", "{lat:-8.087867882261257,lng:112.17800617218018}", "{lat:-8.089057558100306,lng:112.15251445770264}"] 

[{lat:-8.089057558100306,lng:112.15251445770264}, {lat:-8.100954123313068,lng:112.15251445770264}, {lat:-8.100954123313068,lng:112.1782636642456}, {lat:-8.087867882261257,lng:112.17800617218018}, {lat:-8.089057558100306,lng:112.15251445770264}] 

后除去双引号我的数据一定还在阵,不串。

感谢

+4

不是我的downvote,但我认为你应该从源头上解决这个问题,而不是在JavaScript中。 –

+2

这看起来像一个数组中的差不多JSON。首先它是如何得到这种方式的? – deceze

+1

试试这个'arr = arr.map(function(item){return JSON.parse(item)})' –

回答

0

如果你不能改变你上面得到的结果,你必须解决它。

var a = ["{lat:-8.089057558100306,lng:112.15251445770264}", "{lat:-8.100954123313068,lng:112.15251445770264}", "{lat:-8.100954123313068,lng:112.1782636642456}", "{lat:-8.087867882261257,lng:112.17800617218018}", "{lat:-8.089057558100306,lng:112.15251445770264}"]; 
 

 
a = a.map(function(o){ 
 

 
    var d = o.split(',').map(function(b){ 
 
     return Number(b.replace(/(}|{lat:|lng:)/g, '')); 
 

 
      /* OR 
 
      b.replace('{lat:', '') 
 
       .replace('lng:', '') 
 
       .replace('}', ''); 
 
      */ 
 

 
    }); 
 
    
 
    return { 
 
    lat: d[0], 
 
    lng: d[1] 
 
    }; 
 
    
 
}); 
 

 
console.log(a);

+0

我试试这个,仍然双引号, {lat:“-8.089057558100306”,lng:“112.15251445770264”}如何删除双引号? –

+0

@MuhammadAziiz,检查您的浏览器控制台。片段控制台将其显示为JSON。 –

+0

如何更改为{lat:-8.089057558100306,lng:112.15251445770264}?没有双引号 –

1

IIF你真的相信数据,eval荷兰国际集团也将其转换最简单的方法:(

let data = ["{lat:-8.089057558100306,lng:112.15251445770264}", "{lat:-8.100954123313068,lng:112.15251445770264}", "{lat:-8.100954123313068,lng:112.1782636642456}", "{lat:-8.087867882261257,lng:112.17800617218018}", "{lat:-8.089057558100306,lng:112.15251445770264}"]; 
 

 
console.log(data.map(s => eval('null,' + s)));

null,是只是为了让eval将此视为表达,而不是{}。)

然而,一如既往,eval可以引入代码注入漏洞,如果你不知道在哪里的数据从何而来。而且,实际上,您应该首先了解数据如何通过这种方式进行处理,然后将其修复为有用的格式。

+0

这项工作。非常感谢 –

0

您可以尝试正则表达式

var arr = ["{lat:-8.089057558100306,lng:112.15251445770264}", "{lat:-8.100954123313068,lng:112.15251445770264}", "{lat:-8.100954123313068,lng:112.1782636642456}", "{lat:-8.087867882261257,lng:112.17800617218018}", "{lat:-8.089057558100306,lng:112.15251445770264}"] 
 

 
arr = arr.map(function(item) { 
 
    var match = item.match(/lat:(\-?[0-9\.]+),lng:(\-?[0-9\.]+)/); 
 
    return {lat: +match[1], lng: +match[2]}; 
 
}) 
 

 
console.log(arr)

+0

这项工作。非常感谢你 –