Eu tenho um caso de uso em que estou lendo dados de streaming do servidor e colocando-os em uma matriz. Então minha abordagem é:
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
}
}
Mas isto não está funcionando. a execução do código simplesmente para em 'push' e nada acontece depois disso.
Float32Array não tem estrutura de dados correta para este caso de uso?
Matrizes digitadas não possuem um
push
método. Em vez disso, basta preencher um array padrão e depois passá-lo para oFloat32Array
construtor. Você também pode usar alguns métodos de array aqui, comomap
eflatMap
:O erro ocorre porque você não inicializou o tamanho do array. Você pode alterar esse código de acordo com minhas recomendações.
Ou você pode simplesmente alterar Float32Array para array básico.