pet*_*llw 2 javascript arrays split parsefloat
我试图拆分一个字符串数组,称为"顶点"并将其存储为浮点数组.
目前,字符串数组包含三个元素: ["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(" ");
}
Run Code Online (Sandbox Code Playgroud)
...它给了我看起来像我所追求的东西,除了它仍然由三个字符串数组组成.
我如何将split()与parseFloat()一起使用以确保所有元素都是单独的并且类型为float?
您可以使用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]Run Code Online (Sandbox Code Playgroud)
如果你需要的话,.map(Number)你可以使用它.map(parseFloat)而不是你.
甚至更短:
var result = ["0 1 0", "1 -1 0", "-1 -1 0"].join(' ').split(' ').map(Number);
Run Code Online (Sandbox Code Playgroud)
你可以做这样的事情。
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]));
}
}Run Code Online (Sandbox Code Playgroud)