如何在 javascript 中将数组缓冲区数组转换为 float32array 或普通数组?
How to turn array of arraybuffers into either a float32array or a normal array in javascript?
我有一个数组缓冲区,这意味着我有
array[1] -> once this is clicked on, in the console, it holds this
[object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer]
我必须获取这些数组缓冲区并将它们转换回我可以读取的数组。最初,我只有其中一个并且正在使用
temp_float_array = new Float32Array(arr_buff); //turns array buffer data from hex bytes to an array of floats
for (var i = 0; i < temp_float_array.length; i++) {
float_array[i] = parseFloat(temp_float_array[i]);
}
获取 arraybuffer 并将其转换为 float32array,然后从那里使用 parseFloat 使其成为普通数组。现在我有很多这样的数组缓冲区,我需要将每一个都变成一个人类可读的数组。感谢您的帮助或建议。
每个数组缓冲区中包含大约 50K 个值,
[-91.51844787597656,-91.5179443359375,-91.5174560546875,-91.51744842529297,-91.55493927001953,-91.5665283203125,-91.57928466796875,-91.59294128417969,-91.607177734375,-91.62168884277344...etc]
理想情况下,我需要按原样恢复这些值。
对于未来的任何人,这就是我最终所做的。
temp_float_array = new Float32Array(arr_buff); //turns array buffer data from hex bytes to an array of floats
for (var j = 0; j < temp_float_array.length; j++) {
part_arr[j] = parseFloat(temp_float_array[j]);
}
float_array = float_array + part_arr;
我使用了嵌套的 for 循环。这是我的主 for 循环的内部,arr_buff 是每个单独的数组缓冲区。这为每个数组缓冲区提供了一组 float32 数组。在我的主 for 循环之外,我有
float_array = float_array.split(',');
for (var u = 0; u < float_array.length; u++) {
float_array[u] = parseFloat(float_array[u]);
}
在逗号处拆分值,然后取 float_array,它现在有我的 float32 数组,然后将其变成一个具有几百万个值的大型数组。我确定这不是最干净或最快的解决方案,但我现在的工作解决方案。
我有一个数组缓冲区,这意味着我有
array[1] -> once this is clicked on, in the console, it holds this
[object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer][object ArrayBuffer]
我必须获取这些数组缓冲区并将它们转换回我可以读取的数组。最初,我只有其中一个并且正在使用
temp_float_array = new Float32Array(arr_buff); //turns array buffer data from hex bytes to an array of floats
for (var i = 0; i < temp_float_array.length; i++) {
float_array[i] = parseFloat(temp_float_array[i]);
}
获取 arraybuffer 并将其转换为 float32array,然后从那里使用 parseFloat 使其成为普通数组。现在我有很多这样的数组缓冲区,我需要将每一个都变成一个人类可读的数组。感谢您的帮助或建议。
每个数组缓冲区中包含大约 50K 个值,
[-91.51844787597656,-91.5179443359375,-91.5174560546875,-91.51744842529297,-91.55493927001953,-91.5665283203125,-91.57928466796875,-91.59294128417969,-91.607177734375,-91.62168884277344...etc]
理想情况下,我需要按原样恢复这些值。
对于未来的任何人,这就是我最终所做的。
temp_float_array = new Float32Array(arr_buff); //turns array buffer data from hex bytes to an array of floats
for (var j = 0; j < temp_float_array.length; j++) {
part_arr[j] = parseFloat(temp_float_array[j]);
}
float_array = float_array + part_arr;
我使用了嵌套的 for 循环。这是我的主 for 循环的内部,arr_buff 是每个单独的数组缓冲区。这为每个数组缓冲区提供了一组 float32 数组。在我的主 for 循环之外,我有
float_array = float_array.split(',');
for (var u = 0; u < float_array.length; u++) {
float_array[u] = parseFloat(float_array[u]);
}
在逗号处拆分值,然后取 float_array,它现在有我的 float32 数组,然后将其变成一个具有几百万个值的大型数组。我确定这不是最干净或最快的解决方案,但我现在的工作解决方案。