1:字符串 str 包含单个经纬度数组or字符串 str 包含多个经纬度数组
要将字符串 "[["121.489764476833","31.3215977774656"]]" 中的双引号去掉,并将内部的经纬度值变为数字类型,你可以使用以下代码:
var str = '[["121.489764476833","31.3215977774656"]]'; // 原始字符串
//var str = '[["121.489764476833","31.3215977774656"],["121.489764476833","31.3215977774656"],["121.489764476833","31.3215977774656"],["121.489764476833","31.3215977774656"]]'; // 原始字符串
var parsedStr = str.replace(/"/g, ""); // 去除双引号
var parsedData = JSON.parse(parsedStr); // 解析为数组
// 将字符串数组中的元素转换为数字
var result = parsedData.map(function(arr) {
return arr.map(function(value) {
return Number(value);
});
});
var finalStr = JSON.stringify(result); // 转换回字符串
console.log(finalStr);
使用 replace() 函数将字符串中的双引号去除,得到 parsedStr。
使用 JSON.parse() 函数将 parsedStr 解析为数组 parsedData。
使用 map() 函数遍历数组,将字符串类型的经纬度值转换为数字类型。
最后使用 JSON.stringify() 函数将结果数组 result 转换回字符串,并将其赋值给 finalStr。
在控制台输出 finalStr,查看结果字符串。
2:如果数组里面是单引号的话 怎么去除单引号
如果数组中的元素是单引号而不是双引号,你可以使用以下代码将数组中的单引号去除:
var geom = "[['121.489764476833','31.3215977774656'],['121.489764476833','31.3215977774656'],['121.489764476833','31.3215977774656'],['121.489764476833','31.3215977774656']]"; // 原始字符串
var parsedStr = geom.replace(/'/g, ""); // 去除单引号
console.log(parsedStr);
使用了 replace() 函数以正则表达式 /'/g 作为参数,将字符串中的单引号替换为空字符串,以去除单引号。
在控制台输出 parsedStr,查看去除单引号后的字符串。
如下:
3:将包含经纬度的数组中的双引号去除,并将内部的经纬度字符串转换为数字类型
var array = [
[
"121.489768450379",
"31.3216971186524"
],
[
"121.490865175916",
"31.3217328814666"
],
[
"121.490714177567",
"31.3210851775933"
],
[
"121.489438637878",
"31.3210573621167"
]
];
var result = array.map(function(subArray) {
return subArray.map(function(value) {
return Number(value);
});
});
console.log(result);
使用了两个嵌套的 map() 函数来遍历数组并转换其中的字符串为数字类型。
外部的 map() 函数遍历数组的每个子数组(经纬度对数组)。
内部的 map() 函数遍历每个子数组中的经度和纬度字符串,并使用 Number() 函数将其转换为数字类型。
得到了转换后的数组 result,其中的经纬度已经以数字类型表示。
在控制台输出 result,查看结果数组。