我有一个用例,其中我从服务器读取流数据并将其放入数组中。所以我的方法是:
var points = str.split("\n"); //split input based on new line character
var positions = new Float32Array();
for (let i = 0; i < points.length; i++) {
var coords = points[i].split("_"); //split line into individual values separated by '_'
for(let j=0; j < coords.length; j++) {
var coord = parseFloat(coords[j]) // parse string to float
positions.push(coord); // add to float array
}
}
但这不起作用。代码执行只是在“推送”处停止,之后什么也没有发生。
对于这个用例来说,Float32Array 是不是正确的数据结构?
类型化数组没有
push
方法。相反,只需填充标准数组,然后将其传递给Float32Array
构造函数。您还可以在此处使用一些数组方法,例如map
和flatMap
:发生错误是因为您没有初始化数组的大小。您可以根据我的建议更改该代码。
或者您可以简单地将 Float32Array 更改为基本数组。