我有一个JavaScript Float32Array,我想把它转换成一个普通的JavaScript数组,我该怎么做?
camsedfj1#
如果您不需要支持旧的浏览器(不幸的是,包括IE),您可以使用Array.from,它是ES6中添加的:
Array.from
var array = Array.from(floatarr);
这一点现在适用于所有浏览器的新版本(IE除外),也适用于所有主要的移动的浏览器。
jyztefdp2#
使用数组.prototype.slice将float32Array转换为数组. jsfiddle
float32Array
var floatarr = new Float32Array(12); var array = Array.prototype.slice.call(floatarr);
nzk0hqpo3#
您可以将其用作任何数组,这意味着您可以执行以下操作:
var arr = []; for (var i=0; i<myFloat32array.length; i++) arr[i] = myFloat32array[i];
但通常将其用作Float32Array比转换它更有效。如果您不想混合不同类型的值,请不要转换它。
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());
4条答案
按热度按时间camsedfj1#
如果您不需要支持旧的浏览器(不幸的是,包括IE),您可以使用
Array.from
,它是ES6中添加的:这一点现在适用于所有浏览器的新版本(IE除外),也适用于所有主要的移动的浏览器。
jyztefdp2#
使用数组.prototype.slice将
float32Array
转换为数组. jsfiddlenzk0hqpo3#
您可以将其用作任何数组,这意味着您可以执行以下操作:
但通常将其用作Float32Array比转换它更有效。
如果您不想混合不同类型的值,请不要转换它。
zbq4xfa04#
在一个镜头:
对象.原型.toArray=数组.原型.切片;
然后,您可以这样使用它: