मैं ArrayBuffer
वस्तुओं के साथ काम कर रहा हूँ, और मैं उन्हें डुप्लिकेट करना चाहते हैं। हालांकि यह वास्तविक संकेत और memcpy
साथ नहीं बल्कि आसान है, मैं जावास्क्रिप्ट में यह करने के लिए किसी भी सरल तरीके से नहीं मिल सका।ऐरेबफर ऑब्जेक्ट की प्रतिलिपि बनाने का सबसे सरल तरीका क्या है?
अभी, यह मैं कैसे कॉपी है मेरी ArrayBuffers
:
function copy(buffer)
{
var bytes = new Uint8Array(buffer);
var output = new ArrayBuffer(buffer.byteLength);
var outputBytes = new Uint8Array(output);
for (var i = 0; i < bytes.length; i++)
outputBytes[i] = bytes[i];
return output;
}
वहाँ एक खूबसूरत तरीका है?
परीक्षण किया क्रोम में (इस टिप्पणी के समय 2 9), ऐरेबफर के पास .slice नामक एक विधि नहीं है, लेकिन .subarray (प्रारंभ [, अंत]) इसके बजाए। निश्चित नहीं है कि यह एफएफ में कैसा है। –
ऐसा लगता है कि मेरे उत्तर को उत्पन्न होने के बाद से spec बदल गया है। मैं इसे अद्यतन करने पर काम करूंगा। 'स्लाइस() 'के स्थान पर' subarray() 'नए मानक में है। – chuckj
spec पर फिर से देख रहे हैं, 'ऐरेबफर' में 'टुकड़ा() 'होना चाहिए। टाइप किए गए सरणी (जैसे 'Uint8Array') में 'subarray()' होना चाहिए। उपरोक्त 'ऐरेबफर' के लिए सही है। – chuckj