如何将JavaScript类型化数组转换为JavaScript数组

llycmphe  于 2022-12-28  发布在  Java
关注(0)|答案(4)|浏览(235)

我有一个JavaScript Float32Array,我想把它转换成一个普通的JavaScript数组,我该怎么做?

camsedfj

camsedfj1#

如果您不需要支持旧的浏览器(不幸的是,包括IE),您可以使用Array.from,它是ES6中添加的:

var array = Array.from(floatarr);

这一点现在适用于所有浏览器的新版本(IE除外),也适用于所有主要的移动的浏览器。

jyztefdp

jyztefdp2#

使用数组.prototype.slice将float32Array转换为数组. jsfiddle

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

nzk0hqpo3#

您可以将其用作任何数组,这意味着您可以执行以下操作:

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

但通常将其用作Float32Array比转换它更有效。
如果您不想混合不同类型的值,请不要转换它。

zbq4xfa0

zbq4xfa04#

在一个镜头:
对象.原型.toArray=数组.原型.切片;
然后,您可以这样使用它:

fa32 = new Float32Array([1.0010000467300415, 1.0019999742507935, 2.003000020980835]);
fa64 = new Float64Array([1.0010000467300415, 1.0019999742507935, 2.003000020980835]);

Object.prototype.toArray = Array.prototype.slice

console.log("fa32", fa32.toArray());
console.log("fa64", fa64.toArray());

相关问题