如何拆分经纬度对象、移除空格并按逗号分割值赋值给独立常量?
经纬度对象解析实现方案
问题场景
出于隐私保护考虑,示例中使用的坐标均为随机生成数值,待处理的经纬度键值对象格式如下:
const coordObj = { '0': '2', '1': '5', '2': '.', '3': '1', '4': '3', '5': '4', '6': '2', '7': '0', '8': '0', '9': ',', '10': ' ', '11': '-', '12': '3', '13': '8', '14': '.', '15': '5', '16': '4', '17': '9', '18': '2', '19': '0', '20': '2' }
需求为:拼接该对象所有字符取值,移除空白字符后按逗号分割,将拆分得到的经纬度值分别存入独立常量。
实现步骤
- 按照键的数字升序遍历对象,避免默认遍历顺序错乱导致拼接结果错误
- 将遍历拿到的所有字符拼接为原始字符串
- 通过正则替换移除字符串内的所有空白字符
- 以逗号为分隔符拆分字符串,拿到经度、纬度两个结果,分别声明常量存储
完整实现代码
// 按键的数字顺序拼接所有字符 const rawStr = Object.keys(coordObj) .sort((a, b) => Number(a) - Number(b)) .map(key => coordObj[key]) .join('') // 移除所有空白字符 const cleanedStr = rawStr.replace(/\s/g, '') // 拆分结果存入独立常量 const [longitude, latitude] = cleanedStr.split(',') // 结果验证 console.log(longitude) // 输出:25.134200 console.log(latitude) // 输出:-38.549202
注意:如果能100%确认对象的键是从0开始连续递增的数字字符串,也可以省略排序步骤直接遍历取值,但保留排序逻辑可以兼容键顺序错乱的异常场景,代码鲁棒性更强。
内容的提问来源于stack exchange,提问作者Hudson Basso
相关产品推荐
相关产品推荐

