Javascript - 字符串到坐标数组
Javascript - String to Coordinates Array
我是Javascript的新手,在将字符串转换为坐标值数组时遇到了一些问题。
这是我的字符串(临时 - 字符串可能有更多/更少的坐标):
var str = "12:13.94:13:14.9:";
每个坐标由 ":" 分隔,其中
str[0] = x1;
str[1] = y1;
str[2] = x2;
str[3] = y2;
.................
我希望它返回一个 2D 坐标数组,如下所示:
var cArray = [[12,13.94],[13,14.9].........];
有什么办法可以做到这一点吗?
我试过了:
var cString = coorStr.split(":");
但它只返回一个字符串数组,
这就是我到目前为止所拥有的:https://jsfiddle.net/mLskwxyj/
Tadman的回答提供了一种将字符串解析为数字数组的方法:
var str = '12:13,94:13:14,9';
var num = str.split(':').map(Number);
对于将此数组拆分为[x, y]
对的通用方法,此答案提供了一个简洁的解决方案。我在下面稍微修改了一下(以删除 Lodash 依赖项):
var coords = num.reduce(function (r, v, i, a) {
// on every even element, grab a pair of numbers and
// add to the result
if (i % 2 === 0)
r.push(a.slice(i, i + 2));
return r;
}, []);
这是一个工作示例。请注意,具有预分配结果数组的 for
循环将提高性能。我只是想在单个语句中提供一种方法来做到这一点。
这有点笨拙,但可以根据需要排列它们:
var str = "12:13,94:13:14,9:";
var split = str.replace(/,/g, '.').split(':').map(Number);
var result = [
[ split[0], split[1] ],
[ split[2], split[3] ],
];
console.log(result);
// [ [ 12, 13.94 ], [ 13, 14.9 ] ]
说明欧洲风格对数字,
的使用。
更新:根据建议添加了.map(Number)
。
相关文章:
- 如何创建一个谷歌地图地理坐标数组
- 断言错误:断言失败:坐标数组的长度应与步幅匹配
- Javascript 地理位置:将坐标存储在数组中
- 将地理位置坐标放入数组中
- 检查鼠标光标是否在带坐标的数组范围内
- 如何在谷歌地图API中使用坐标数组绘制多边形
- 每个表的2D数组获取坐标JTSL,JAVASCRIPT
- 根据折线坐标数组创建高程剖面图
- 使用地理编码返回陆基坐标数组时出现问题
- Javascript - 字符串到坐标数组
- 将图像像素数据转换为坐标数组
- 从xml创建多边形坐标数组
- 如何循环遍历坐标数组
- 在javascript中搜索精确匹配的多维坐标数组
- 如何获得坐标数组的最大/最小边界
- 使用Javascript有效地从坐标数组中获得距离最短的一对坐标
- 在Google Maps API V3中使用LatLng坐标数组绘制折线
- 如何循环遍历坐标数组来为layerGroup创建地图标记
- 在坐标数组上循环并计算距离javascript
- 在JavaScript中创建坐标数组