vObjects.push.apply(null, aObjects);
और ऐसा करने का एक और तरीका।
यहां चाल सरल है। यदि आप अपनी सरणी को वेक्टर में लोड करने के लिए concat()
विधि का उपयोग करने का प्रयास करते हैं तो यह असफल हो जाएगा क्योंकि इनपुट वेक्टर है और वेक्टर तत्व जोड़ने के बजाय एएस पूरे वेक्टर को एक प्रविष्टि के रूप में जोड़ देगा। और यदि आप push()
का उपयोग करना चाहते थे तो आपको सरणी में सभी आइटमों के माध्यम से जाना होगा और उन्हें एक-एक करके जोड़ना होगा।
सामान्य तरीका: vObjects.push(aObjects)
त्रुटि फेंकता क्योंकि aObjects
एक Object
लेकिन एक Array
नहीं है
ActionScript में हर कार्य को तीन तरह से कहा जा सकता है।
call
विधि: vObjects.push.call(this, myObject1, myObject2, ..., myObjectN)
क्योंकि हम एक अल्पविराम द्वारा पृथक सूची में aObjects
सरणी है कि हम कार्य करने के लिए पारित कर सकते हैं विभाजित नहीं कर सकते हमारी मदद नहीं करता है।
apply
विधि: vObjects.push.apply(this, aObjects)
इस मार्ग के रूप में खुशी से इनपुट के रूप में सरणी स्वीकार करते हैं और वेक्टर के लिए उसके तत्वों जोड़ना होगा जा रहे हैं। यदि सरणी के तत्व प्रकार और वेक्टर मेल नहीं खाते हैं तो आपको अभी भी रनटाइम त्रुटि मिल जाएगी। पहले पैरामीटर पर ध्यान दें: यह फ़ंक्शन चलाते समय this
पर स्कॉप्ड किया गया है, अधिकांश मामलों में null
ठीक होगा, लेकिन अगर आप कॉल करने के लिए this
कीवर्ड का उपयोग करते हैं तो आपको null
से कुछ और पास करना चाहिए।
नहीं, काम नहीं करेगा क्योंकि 'myVector' 'emray'' concat()' अपेक्षाओं के रूप में नहीं है। – Tox