2012-10-06 12 views
13

मेरे पास एक जावास्क्रिप्ट Float32Array है, और मैं इसे एक नियमित जावास्क्रिप्ट ऐरे में परिवर्तित करना चाहता हूं। मैं यह कैसे कर सकता हूँ?जावास्क्रिप्ट टाइप किए गए ऐरे को जावास्क्रिप्ट में कैसे परिवर्तित करें Array

+1

आपको इसे ऐरे होने की आवश्यकता क्यों है? – Eric

+1

ध्यान दें कि स्वीकार किए जाते हैं जवाब JavaScript Typed Arrays, जैसे Int8Array, Float64Array, आदि प्रश्न शीर्षक के सभी के लिए काम करता है, यह दिखाने के लिए बदला जा सकता है तो यह इस उत्तर के लिए खोज रहे लोगों के लिए और अधिक उपयोगी है। –

+0

मैंने विषय और प्रश्न बनाने के लिए एक प्रस्ताव प्रस्ताव प्रस्तुत किया। – marcusstenbeck

उत्तर

0

आप किसी सरणी, आप ऐसा कर सकते हैं, जिसका मतलब है के रूप में उपयोग कर सकते हैं:

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

लेकिन यह आम तौर पर यह परिवर्तित करने के बजाय एक Float32Array के रूप में उपयोग करने के लिए और अधिक कुशल है।

यदि आप विभिन्न प्रकार के मानों को मिश्रण नहीं करना चाहते हैं, तो इसे परिवर्तित न करें।

31

float32Array को ऐरे में बदलने के लिए Array.prototype.slice का उपयोग करें। jsfiddle

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

यह काम करता है! धन्यवाद। – stuax

+0

जॉइन भी काम करने लगता है, अच्छी चाल! Array.prototype.join.call (फ्लोटर, ',') –

+0

क्या यह आसानी से बड़े सरणी पर ढेर आकार से अधिक नहीं होगा? –

7

आप पुराने ब्राउज़रों (आईई सहित, दुर्भाग्य से) का समर्थन की जरूरत नहीं है, तो आप Array.from, जो added to ES6 था का उपयोग कर सकते हैं:

var array = Array.from(floatarr); 

हर ब्राउज़र की नई विज्ञप्ति में यह now works आईई को छोड़कर, और यह भी अधिकांश मोबाइल ब्राउज़रों पर काम करता है।

संबंधित मुद्दे