JavaScript将坐标字符串转为数组的解决方案

在js中如何将字符串"116.46379121474405,39.97916507672784;116.46034172158573,40.086119103673724"转为数组格式?

在JavaScript中,你可以使用split函数将字符串分割为数组。给定的字符串是一个包含两个坐标点的坐标数组,每个点由经度和纬度表示,并以分号分隔。

以下是将给定字符串转换为数组的示例代码:

javascript 复制代码
let str = "[116.46379121474405,39.97916507672784];[116.46034172158573,40.086119103673724]";
let array = str.split(";").map(item => item.split(",").map(Number));
console.log(array);

这段代码首先使用分号(;)将字符串分割为两个子字符串,然后对每个子字符串使用逗号(,)进行分割,并将结果转换为数字数组。最终得到的结果是一个包含两个子数组的数组,每个子数组包含两个数字。

输出结果如下:

javascript 复制代码
[
  [116.46379121474405, 39.97916507672784],
  [116.46034172158573, 40.086119103673724]
]

返回的数组是NaN

如果上面的代码返回的数组包含NaN值,那么很可能是因为原始字符串中的某些部分没有被正确地转换为数字。NaN(Not-a-Number)是JavaScript中表示一个值无法被转换为数字或者数学运算结果未定义的特殊值。

在提供的代码中,map(Number)应该能够正确地将每个字符串分割得到的子字符串转换为数字,除非这些子字符串中包含了无法被解析为数字的字符。然而,根据你之前给出的字符串示例,这不应该发生,因为所有的值都是合法的数字格式。

为了解决这个问题,请确保以下几点:

  1. 原始字符串中的每个坐标点都是用方括号括起来的,并且每个坐标点之间用分号分隔。
  2. 每个坐标点中的经度和纬度值都是用逗号分隔的。
  3. 经度和纬度值都是有效的数字格式,没有包含任何额外的字符或空格。

如果以上都确认无误,那么代码应该能够正确运行。如果仍然得到NaN,请检查是否有其他代码修改了原始字符串或者在处理过程中引入了错误。

以下是一个完整且正确的示例,它应该能够正确地将字符串转换为数组:

javascript 复制代码
let str = "[116.10159443312094,39.94465627127621];[116.10274426417372,39.94465627127621];[116.10734358838481,39.94554133173499];";
// 移除字符串开头和结尾可能存在的多余分号或字符
str = str.replace(/^;|;$/g, ''); // 这个正则表达式实际上对于给定的字符串是不必要的,但为了完整性还是加上了
let array = str.split(";").map(item => {
  // 移除每个坐标点字符串开头和结尾的方括号,然后分割并转换数字
  return item.slice(1, -1).split(",").map(Number);
});
console.log(array);

这段代码会输出一个包含三个坐标点的数组,每个点都是一个包含两个数字的数组。如果你在实际运行中得到NaN,请检查你的输入字符串是否与示例字符串完全一致,以及是否在运行代码之前或之后有其他代码修改了该字符串。


@漏刻有时

相关推荐
昵称画6 小时前
交接班记录电子化:三班之间的信息不漏
开发语言·数据库·人工智能·低代码·php
“AI国潮设计-小江”6 小时前
【AIGC实战】Python+SDXL批量生成“潮汕英歌舞不倒翁”IP | 角色一致性与多场景融合方案,附完整代码
开发语言·人工智能·python·prompt·aigc
传奇开心果编程6 小时前
【Rust入门练中学】第6课:结构体与方法
开发语言·rust·结构体·编程语言理论·结构体方法·编程通用语言
Linux_cy6 小时前
服务器管理工具哪个好用?我用了七八个
运维·服务器·javascript·python·ssh·面板·gmssh
code tsunami7 小时前
【无标题】
开发语言·python
变与不变8067 小时前
jQuery细节以及使用应用场景
前端·javascript·jquery
CodeGL7 小时前
10、Python基础之进程和线程
开发语言·python
TechWayfarer8 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php
卡卡~~9 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法
qq_4069810310 小时前
大白话rust系列09 函数调用两次有什么错?
开发语言·python·rust