2012-10-06 108 views
13

我有一個JavaScript Float32Array,我想將其轉換爲常規JavaScript數組。我怎樣才能做到這一點?如何將JavaScript類型數組轉換爲JavaScript數組

+1

爲什麼你需要它是一個數組? – Eric

+1

請注意,接受的答案適用於所有Javascript類型數組,例如Int8Array,Float64Array等。問題標題可以更改以反映此問題,因此它對搜索此答案的用戶更有幫助。 –

+0

我向主題和問題表述提交了更改建議。 – marcusstenbeck

回答

0

你可以使用它作爲任何數組,這意味着你可以這樣做:

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

但它通常是更有效地使用它作爲一個Float32Array而不是轉換。

如果您不想混合不同類型的值,請不要轉換它。

31

使用Array.prototype.slice將float32Array轉換爲Array。 jsfiddle

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

它的工作原理!謝謝。 – stuax

+0

加入似乎也工作,好戲法! Array.prototype.join.call(floatarr,',') –

+0

難道這不會輕易超過大型數組上的堆棧大小嗎? –

7

如果沒有需要支持舊的瀏覽器(包括IE,不幸的),你可以使用Array.from,這是added to ES6

var array = Array.from(floatarr); 

now works在每個瀏覽器的新版本除IE之外,它也適用於大多數移動瀏覽器。

相關問題