2

「頂点」と呼ばれる文字列の配列を分割し、浮動小数点数の配列として保存しようとしています。

現在、文字列の配列には次の 3 つの要素が含まれています。["0 1 0", "1 -1 0", '-1 -1 0"]

必要なのは、これらすべての数字を個々の要素として含む float の配列です。[0, 1, 0, 1, -1, 0, -1, -1, 0]

次のように split() 関数を使用しました。

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

...これは、まだ3つの文字列の配列で構成されていることを除いて、私が求めているもののように見えるものを私に与えます.

parseFloat() を split() と一緒に使用して、すべての要素が分離され、float 型であることを確認するにはどうすればよいですか?

4

2 に答える 2

8

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]

必要に応じてもちろん代わりに.map(Number)使用できます。.map(parseFloat)

またはさらに短い:

var result = ["0 1 0", "1 -1 0", "-1 -1 0"].join(' ').split(' ').map(Number);
于 2014-11-17T17:33:28.127 に答える
5

このようなことができます。

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]));
  }
}

于 2014-11-17T17:33:43.687 に答える