我正在尝试拆分一个名为'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?
答案 0 :(得分:7)
您可以使用Array.prototype.reduce
方法:
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;
如果需要,您可以使用.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]));
}
}