簡體   English   中英

如何將字符串變為非字符串?

[英]How do I turn a string into not being a string?

如果我在 js 中有一個數組:

['{lat:52.5159, lng:13.3777}', '{lat:37.773972, lng:-122.431297}', '{lat:39.916668, lng:116.383331}']

我如何使值不是字符串。 例如,它們應該如下所示:

[{lat:52.5159, lng:13.3777}, {lat:37.773972, lng:-122.431297}, {lat:39.916668, lng:116.383331}]

這可能嗎? 如果是這樣,我該怎么做?

因為這些不是 JSON 字符串,所以您無法解析它們。

使用正則表達式查找數字,然后在數組上查找map 在每次迭代中匹配數字,然后返回 object 確保將字符串強制轉換為數字。

 const arr = [ '{lat:52.5159, lng:13.3777}', '{lat:37.773972, lng:-122.431297}', '{lat:39.916668, lng:116.383331}' ]; const re = /-?[\d]+\.[\d]+/g; const out = arr.map(str => { const [ lat, lng ] = str.match(re); return { lat: +lat, lng: +lng }; }); console.log(out);

所以看起來您想將數組中的字符串解析為對象。 對於您帖子中的字符串,它們不會輕易轉換為 object,因為它們不是正確的 JSON。 如果初始數組的格式如下:

['{"lat":52.5159, "lng":13.3777}', '{"lat":37.773972, "lng":-122.431297}', '{"lat":39.916668, "lng":116.383331}']

從這里我們可以簡單地做一個數組 map 來從字符串中獲取對象:

var input = ['{"lat":52.5159, "lng":13.3777}', '{"lat":37.773972, "lng":-122.431297}', '{"lat":39.916668, "lng":116.383331}']

input = input.map(value => JSON.parse(value));

這將使輸入看起來像這樣:

[{lat:52.5159, lng:13.3777}, {lat:37.773972, lng:-122.431297}, {lat:39.916668, lng:116.383331}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM