JavaScript將坐標(biāo)字符串轉(zhuǎn)為數(shù)組的項(xiàng)目實(shí)踐
在js中如何將字符串"[116.46379121474405,39.97916507672784];[116.46034172158573,40.086119103673724]"轉(zhuǎn)為數(shù)組格式?
在JavaScript中,你可以使用split
函數(shù)將字符串分割為數(shù)組。給定的字符串是一個(gè)包含兩個(gè)坐標(biāo)點(diǎn)的坐標(biāo)數(shù)組,每個(gè)點(diǎn)由經(jīng)度和緯度表示,并以分號(hào)分隔。
以下是將給定字符串轉(zhuǎn)換為數(shù)組的示例代碼:
let str = "[116.46379121474405,39.97916507672784];[116.46034172158573,40.086119103673724]"; let array = str.split(";").map(item => item.split(",").map(Number)); console.log(array);
這段代碼首先使用分號(hào)(;
)將字符串分割為兩個(gè)子字符串,然后對(duì)每個(gè)子字符串使用逗號(hào)(,
)進(jìn)行分割,并將結(jié)果轉(zhuǎn)換為數(shù)字?jǐn)?shù)組。最終得到的結(jié)果是一個(gè)包含兩個(gè)子數(shù)組的數(shù)組,每個(gè)子數(shù)組包含兩個(gè)數(shù)字。
輸出結(jié)果如下:
[
[116.46379121474405, 39.97916507672784],
[116.46034172158573, 40.086119103673724]
]
返回的數(shù)組是NaN
如果上面的代碼返回的數(shù)組包含NaN
值,那么很可能是因?yàn)樵甲址械哪承┎糠譀]有被正確地轉(zhuǎn)換為數(shù)字。NaN
(Not-a-Number)是JavaScript中表示一個(gè)值無法被轉(zhuǎn)換為數(shù)字或者數(shù)學(xué)運(yùn)算結(jié)果未定義的特殊值。
在提供的代碼中,map(Number)
應(yīng)該能夠正確地將每個(gè)字符串分割得到的子字符串轉(zhuǎn)換為數(shù)字,除非這些子字符串中包含了無法被解析為數(shù)字的字符。然而,根據(jù)你之前給出的字符串示例,這不應(yīng)該發(fā)生,因?yàn)樗械闹刀际呛戏ǖ臄?shù)字格式。
為了解決這個(gè)問題,請(qǐng)確保以下幾點(diǎn):
- 原始字符串中的每個(gè)坐標(biāo)點(diǎn)都是用方括號(hào)括起來的,并且每個(gè)坐標(biāo)點(diǎn)之間用分號(hào)分隔。
- 每個(gè)坐標(biāo)點(diǎn)中的經(jīng)度和緯度值都是用逗號(hào)分隔的。
- 經(jīng)度和緯度值都是有效的數(shù)字格式,沒有包含任何額外的字符或空格。
如果以上都確認(rèn)無誤,那么代碼應(yīng)該能夠正確運(yùn)行。如果仍然得到NaN
,請(qǐng)檢查是否有其他代碼修改了原始字符串或者在處理過程中引入了錯(cuò)誤。
以下是一個(gè)完整且正確的示例,它應(yīng)該能夠正確地將字符串轉(zhuǎn)換為數(shù)組:
let str = "[116.10159443312094,39.94465627127621];[116.10274426417372,39.94465627127621];[116.10734358838481,39.94554133173499];"; // 移除字符串開頭和結(jié)尾可能存在的多余分號(hào)或字符 str = str.replace(/^;|;$/g, ''); // 這個(gè)正則表達(dá)式實(shí)際上對(duì)于給定的字符串是不必要的,但為了完整性還是加上了 let array = str.split(";").map(item => { // 移除每個(gè)坐標(biāo)點(diǎn)字符串開頭和結(jié)尾的方括號(hào),然后分割并轉(zhuǎn)換數(shù)字 return item.slice(1, -1).split(",").map(Number); }); console.log(array);
這段代碼會(huì)輸出一個(gè)包含三個(gè)坐標(biāo)點(diǎn)的數(shù)組,每個(gè)點(diǎn)都是一個(gè)包含兩個(gè)數(shù)字的數(shù)組。如果你在實(shí)際運(yùn)行中得到NaN
,請(qǐng)檢查你的輸入字符串是否與示例字符串完全一致,以及是否在運(yùn)行代碼之前或之后有其他代碼修改了該字符串。
到此這篇關(guān)于JavaScript將坐標(biāo)字符串轉(zhuǎn)為數(shù)組的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)JavaScript 坐標(biāo)字符串轉(zhuǎn)為數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)簡(jiǎn)單移動(dòng)端鼠標(biāo)拖拽
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)簡(jiǎn)單移動(dòng)端鼠標(biāo)拖拽,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07javascript firefox不顯示本地預(yù)覽圖片問題的解決方法
在Firefox一直不能用js做出圖片預(yù)覽的效果,下面這個(gè)即可解決,用替換的方法實(shí)現(xiàn)firefox支持得的路徑格式2008-11-11使用JavaScript獲取Request中參數(shù)的值方法
下面小編就為大家?guī)硪黄褂肑avaScript獲取Request中參數(shù)的值方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09純js和css實(shí)現(xiàn)漸變色包括靜態(tài)漸變和動(dòng)態(tài)漸變
用javascript實(shí)現(xiàn)一下所謂的動(dòng)態(tài)漸變,考慮動(dòng)態(tài)原因就不上圖了,我來簡(jiǎn)單介紹下思路2014-05-05HTML5開發(fā)Kinect體感游戲的實(shí)例應(yīng)用
這篇文章主要介紹了HTML5開發(fā)Kinect體感游戲的實(shí)例應(yīng)用的相關(guān)資料,希望通過本文能夠幫助到大家,需要的朋友可以參考下2017-09-09微信小程序?qū)W習(xí)之?dāng)?shù)據(jù)處理詳解
這篇文章主要給大家介紹了關(guān)于微信小程序中數(shù)據(jù)處理的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07layui給下拉框、按鈕狀態(tài)、時(shí)間賦初始值的方法
今天小編就為大家分享一篇layui給下拉框、按鈕狀態(tài)、時(shí)間賦初始值的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09