AS3

2011-12-07 14 views
8

में बहुआयामी सरणी प्रकार AS3 में बहु प्रकार का करने का सबसे आसान तरीका क्या होगा। PHP में कुछ array_multisort के समान() ... इस तरह: sort a multidimentional array using array_multisortAS3

मैं क्या है

var COUNTRIES:Array = [["AD","Andorra"],["AE","United Arab Emirates"],["AF","Afghanistan"],["AG","Antigua & Barbuda"],["AI","Anguilla"]]; 

.. जो फंस आउटपुट

Andorra 
United Arab Emirates 
Afghanistan 
Antigua & Barbuda 
Anguilla 

... मैं क्या जरूरत सॉर्ट करने के लिए है यह प्रत्येक की दूसरी अनुक्रमणिका के खिलाफ है, इसलिए मुझे

Afghanistan 
Andorra 
Anguilla 
Antigua & Barbuda 
United Arab Emirates 
+3

कोशिश 'COUNTRIES.sortOn ('1')' देखें http://stackoverflow.com/questions/8008806/as3-sorting-an-array-of-nested-arrays/8010254# विवरण के लिए 8010254। –

+1

इसके अलावा: दस्तावेज़ों को पढ़ने का प्रयास करें ([ऐरे # sortOn()] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Array.html#sortOn%28%29)) – RIAstar

+0

ओएमजी। .. मैं बहुत लंगड़ा हूँ। धन्यवाद 32 बिटकिड। यह काम किया ... एक जवाब विज्ञापन ताकि मैं इसे वोट दे सकूं। – pioSko

उत्तर

6

यह सरल है:

COUNTRIES.sortOn("1"); 

यह काम करता है क्योंकि आप का उपयोग करके एक सरणी सूचकांक का उपयोग कर सकते एक स्ट्रिंग, बस एक संपत्ति की तरह: array["0"]। तो sortOn क्रमबद्ध करने के लिए प्रत्येक आंतरिक सरणी के "1" 'संपत्ति' का उपयोग करता है।

0

इसका उपयोग करने का एक तरीका उपयोग करना होगा वस्तुओं

var countries:Array = [{abb:"AD", name:"Andorra"} //etc...]; 

की किसी सरणी फिर आप सरणी sortOn विधि का उपयोग कर सकते हैं।

0

आप सबसे अच्छा सरणियों की एक सरणी के बजाय वस्तुओं की एक सरणी बनाने के लिए, तो Array.sortOn का उपयोग करें:

var COUNTRIES : Array = 
    [ { short:"AD",long:"Andorra"}, 
     {short:"AE", long:"United Arab Emirates"}, 
     {short:"AF", long:"Afghanistan"}// and so forth 
    ]; 

COUNTRIES.sortOn ("long"); // sorts by long name 
COUNTRIES.sortOn ("short"); // sorts by short name 
0

आप Array.sort() विधि का उपयोग कर सकते हैं।

var COUNTRIES:Array = [[AD,Andorra],[AE,United Arab Emirates],[AF,Afghanistan],[AG,Antigua & Barbuda],[AI,Anguilla]]; 

COUNTRIES = COUNTRIES.sort(sortOnName); 

function sortOnName(a:Array, b:Array):Number { 
    var aName:String = a[1]; 
    var bName:String = b[1]; 

    if(aName > bName) { 
     return 1; 
    } else if(aName < bName) { 
     return -1; 
    } else { 
     //aName == bName 
     return 0; 
    } 
} 

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