在JavaScript中将字符串数组拆分为浮点数组

时间:2014-11-17 17:27:18

标签: javascript arrays split parsefloat

我正在尝试拆分一个名为'vertices'的字符串数组,并将其存储为浮点数组。

目前,字符串数组包含三个元素:["0 1 0", "1 -1 0", '-1 -1 0"]

我需要的是一个包含所有这些数字作为单个元素的浮点数组:[0, 1, 0, 1, -1, 0, -1, -1, 0]

我使用了split()函数,如下所示:

for(y = 0; y < vertices.length; y++)
{
    vertices[y] = vertices[y].split(" "); 
}

...它给了我看起来像我所追求的东西,除了它仍然由三个字符串数组组成。

如何将split()与parseFloat()一起使用以确保所有元素都是单独的并且类型为float?

2 个答案:

答案 0 :(得分:7)

您可以使用Array.prototype.reduce方法:

&#13;
&#13;
var result = ["0 1 0", "1 -1 0", "-1 -1 0"].reduce(function(prev, curr) {
    return prev.concat(curr.split(' ').map(Number));
}, []);

alert(result); // [0, 1, 0, 1, -1, 0, -1, -1, 0]
&#13;
&#13;
&#13;

如果需要,您可以使用.map(Number)代替.map(parseFloat)

甚至更短:

var result = ["0 1 0", "1 -1 0", "-1 -1 0"].join(' ').split(' ').map(Number);

答案 1 :(得分:4)

你可以这样做。

var res = []
for (var y = 0; y < vertices.length; y++) {
  var temp = vertices[y].split(" ");
  for (var i = 0; i < temp.length; i++) {
    res.push(parseFloat(temp[i]));
  }
}