2010-11-30 9 views
14

क्या एरेस्क्रिप्ट में एरेस्क्रिप्ट में Array को Vector में एन्क्रिप्टस्क्रिप्ट में परिवर्तित करने के विकल्प हैं?एक्शनस्क्रिप्ट ऐरे (ऑब्जेक्ट []) और वेक्टर के बीच कनवर्ट करना। <Object>

अन्य तरीकों के बारे में क्या (Vector को Array में परिवर्तित करना)?

उत्तर

25

Array को Vector के लिए, Vector.<TYPE>() समारोह है कि एक सरणी स्वीकार का उपयोग करें और वेक्टर बनाया वापस आ जाएगी: ताकि आप प्रत्येक पर एक पाश क्या करना है

var aObjects:Array = [{a:'1'}, {b:'2'}, {c:'3'}]; 
// use Vector function 
var vObjects:Vector.<Object> = Vector.<Object>(aObjects); 

अन्य कोई builtin समारोह है के लिए, Vector आइटम और फिर Array

0

var myArray: Array = [] .concat (myVector);

काम कर सकता है।

+0

नहीं, काम नहीं करेगा क्योंकि 'myVector' 'emray'' concat()' अपेक्षाओं के रूप में नहीं है। – Tox

1
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 से कुछ और पास करना चाहिए।

+0

यदि आप कृपया अपना उत्तर संपादित कर सकते हैं और समझा सकते हैं कि आप जो कोड दिखा रहे हैं, और क्यों/कोड उस प्रश्न का उत्तर कैसे देता है, तो यह वास्तव में मदद कर सकता है। –