Как преобразовать типизированный массив JavaScript в массив JavaScript

У меня есть JavaScript Float32Array, и я хотел бы преобразовать его в обычный JavaScript-массив. Как я могу это сделать?

Ответ 1

Используйте Array.prototype.slice для преобразования float32Array в массив. jsfiddle

var floatarr = new Float32Array(12);
var array =  Array.prototype.slice.call(floatarr);

Ответ 2

Если вам не нужно поддерживать старые браузеры (в том числе 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, и он работает и в большинстве мобильных браузеров.

Ответ 3

Вы можете использовать его как любой массив, что означает, что вы можете сделать это:

var arr = [];
for (var i=0; i<myFloat32array.length; i++) arr[i] = myFloat32array[i];

Но обычно более эффективно использовать его как Float32Array, а не конвертировать его.

Если вы не хотите смешивать разные типы значений, не конвертируйте их.