2017-09-29 48 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

這項工作。非常感謝你 –