繁体   English   中英

Javascript-字符串到坐标数组

[英]Javascript - String to Coordinates Array

我是Java语言的新手,在将字符串转换为坐标值数组时遇到一些问题。

这是我的字符串(临时-字符串可能具有更多/更少的坐标):

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/

塔德曼的答案提供了一种将字符串解析为数字数组的方法:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM