用于地图字符串经纬度转换成数字经纬度,可实现一维数组,二维数组,三维数组中的值全部转化为数值
1,简洁版
// 一维数组,二维数组,三维数组中的值全部转化为数值
function createStringToNumber(coordinates = []) {
if (!Array.isArray(coordinates) || coordinates.length === 0) return [];
return coordinates.map((v) => Array.isArray(v) ? createStringToNumber(v) : Number(v));
}
2,增加非空和非数字判断
// 一维数组,二维数组,三维数组中的值全部转化为数值
function createStringToNumber(coordinates = []) {
if (!Array.isArray(coordinates) || coordinates.length === 0) return [];
if (coordinates.length === 2 && !Array.isArray(coordinates[0]) && !Array.isArray(coordinates[1])) {
const [longitude, latitude] = coordinates;
if (!longitude || !latitude || isNaN(Number(longitude)) || isNaN(Number(latitude))) return [];
return [Number(longitude), Number(latitude)];
}
return coordinates.map((v) => createStringToNumber(v));
}
3,示例
const array = [
[
"115.88805777594398",
"32.9195101149546"
],
[
"115.89987902188462",
"32.876282584675735"
],
[
"115.85969165953715",
"32.90455185075761"
]
]
const lnglat = createStringToNumber(array)