Frage

Ich habe folgendes Wörterbuch in Flex, und ich d mag es von Wert zu sortieren. Kann keine Ressource finden.

'1'=>2, '0' =>1, '3'=>4 ..

Irgendwelche Ideen? Wie kann ich diese Art von Wert?

War es hilfreich?

Lösung

Wahrscheinlich nicht der beste Weg, es zu tun, aber es funktioniert:

var a:Array = new Array();
for each (var v:Number in dict)
{
  a.push(v);
}

a.sort();

Andere Tipps

Ich suchte um für eine ähnliche Lösung, mit der Ausnahme, dass ich brauchte das Wörterbuch Karte zu sortieren und eine sortierte Sammlung verfügbarer Schlüsselwertepaare zurück. Nachdem er eine veröffentlichte Lösung zu finden, habe ich zusammen den unten Ansatz. Diese Methode verwendet ein Wörterbuch als Eingabe, erzeugt ein Array die Zuordnung beibehalten dann das resultierende Array sortiert Array.sortOn () verwendet und gibt die sortierten Ergebnisse zurück als Array. „Schlüssel“ und „Wert“ Felder in dem Array in dem folgende Beispiel sind aus Gründen der Klarheit verwendet, aber jeder Feldname verwendet werden könnte.

Dieses Beispiel nimmt ein String-Objekt als Schlüssel und ein numerisches Objekt als Wert, obwohl natürlich jeder Objekttyp verwendet werden könnte, und Feldparameter eingestellt.

Der folgende Ansatz könnte auch mit „Schlüsseln“ als Sortierfeld für die sortOn Methode anstelle von Wert für das Sortieren von Schlüsseln verwendet werden, und können Sie verschiedene Sortieroptionen als die absteigenden numerische Sortierung verwenden habe ich hier ( AS3 sortOn () Dokumentation unten)-Code ist absichtlich nicht-generic es zum Beispiel Zwecke zu vereinfachen.

      public static function sortDictionaryByValue(d:Dictionary):Array
        {
          var a:Array = new Array();
          for (var dictionaryKey:Object in d)
          {
            a.push({key:dictionaryKey,value:d[dictionaryKey]});
          }
          a.sortOn("value",[Array.NUMERIC|Array.DESCENDING]);
          return a;
        }   
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top