Ich habe ein Array wie dieses:
arr = []
arr[0] = "ab"
arr[1] = "abcdefgh"
arr[2] = "abcd"
Nach dem Sortieren sollte das Ausgabearray wie folgt lauten:
arr[0] = "abcdefgh"
arr[1] = "abcd"
arr[2] = "ab"
Ich meine, ich möchte in absteigender Reihenfolge die Länge jedes Elements.
javascript
arrays
string
sorting
Ramesh Kumar
quelle
quelle
sort
ist ziemlich einfach, wo hast du Schwierigkeiten?Antworten:
Sie können
Array.sort
das Array mithilfe der Methode sortieren. Eine Sortierfunktion, die die Länge der Zeichenfolge als Sortierkriterium berücksichtigt, kann wie folgt verwendet werden:Hinweis: Es
["a", "b", "c"]
wird nicht garantiert, dass die Sortierung nach Länge der Zeichenfolge zurückgegeben wird["a", "b", "c"]
. Gemäß den Spezifikationen :Wenn das Ziel darin besteht, nach Länge zu sortieren, müssen Sie nach Wörterbuchreihenfolge zusätzliche Kriterien angeben:
quelle
arr.sort((a, b) => b.length - a.length)
Wir können die Array.sort- Methode verwenden, um dieses Array zu sortieren.
ES5-Lösung
ES6-Lösung
Achtung: Nicht alle Browser können ES6-Code verstehen!
In ES6 können wir eine verwenden Pfeil Funktion Ausdrücke .
quelle
Hier ist die Sortierung, abhängig von der Länge eines Strings mit Javascript, wie Sie gefragt haben:
[die Lösung des Problems durch Blasensortierung] [1]
[1]: http://jsfiddle.net/sssonline2/vcme3/2/
enter code here
quelle
Basierend auf Salmans Antwort habe ich eine kleine Funktion geschrieben, um sie zu kapseln:
dann ruf es einfach mit an
Beachten Sie, dass dem Array-Prototyp leider keine Funktionen hinzugefügt werden können / sollten, wie auf dieser Seite erläutert .
Außerdem wurde das als Parameter übergebene Array geändert und es wird nichts zurückgegeben. Dies würde die Duplizierung des Arrays erzwingen und wäre für große Arrays nicht großartig. Wenn jemand eine bessere Idee hat, kommentieren Sie bitte!
quelle
Ich habe die Antwort von @ shareef angepasst, um sie kurz zu fassen. Ich benutze,
.sort(function(arg1, arg2) { return arg1.length - arg2.length })
quelle
quelle
Dieser Code sollte den Trick machen:
quelle
Die anonyme Funktion, die Sie zum Sortieren übergeben, gibt an, wie das angegebene Array sortiert werden soll. Ich hoffe, dies hilft. Ich weiß, dass dies verwirrend ist, aber Sie können der Sortierfunktion mitteilen, wie die Elemente des Arrays sortiert werden sollen, indem Sie ihr eine Funktion als Parameter übergeben es was zu tun
quelle