Ответ 1
Используйте Array.prototype.slice для преобразования float32Array
в массив. jsfiddle
var floatarr = new Float32Array(12);
var array = Array.prototype.slice.call(floatarr);
У меня есть JavaScript Float32Array, и я хотел бы преобразовать его в обычный JavaScript-массив. Как я могу это сделать?
Используйте Array.prototype.slice для преобразования float32Array
в массив. jsfiddle
var floatarr = new Float32Array(12);
var array = Array.prototype.slice.call(floatarr);
Если вам не нужно поддерживать старые браузеры (в том числе IE, к сожалению), вы можете использовать Array.from
, который был < в ES6 добавлен href= "http://www.ecma-international.org/ecma-262/6.0/#sec-array.from" rel= "nofollow noreferrer" > :
var array = Array.from(floatarr);
Этот теперь работает в новых версиях каждого браузера, кроме IE, и он работает и в большинстве мобильных браузеров.
Вы можете использовать его как любой массив, что означает, что вы можете сделать это:
var arr = [];
for (var i=0; i<myFloat32array.length; i++) arr[i] = myFloat32array[i];
Но обычно более эффективно использовать его как Float32Array, а не конвертировать его.
Если вы не хотите смешивать разные типы значений, не конвертируйте их.