Javascript number array sortieren?

...komplette Frage anzeigen

2 Antworten

Wie genau versuchst du denn zu sortieren? Dein Ergebnis sieht danach aus, dass die Werte nicht als Zahlen, sondern als Text gewertet und dementsprechend alphabetisch statt nummerisch sortiert werden...

Antwort bewerten Vielen Dank für Deine Bewertung
kaVonChemie153 27.06.2016, 11:19

ich möchte die zahlen nach dezimaler reinfolge der größe nach ordnen ... ob von groß nach klein oder umgekehr ist egal aber nach 2 soll keine 25 kommen und dann 3 ^^

0

http://stackoverflow.com/questions/1063007/how-to-sort-an-array-of-integers-correctly

Daher: 

function sortNumber(a,b) {
return a - b;
}

var numArray = [140000, 104, 99];
numArray.sort(sortNumber);
alert(numArray.join(","));
Antwort bewerten Vielen Dank für Deine Bewertung
kaVonChemie153 27.06.2016, 10:58

kann ich auch 8 statt 2 parameter übergeben ? und wenn ja was müsste ich verändern? ^^

0
Jonas711 27.06.2016, 11:02
@kaVonChemie153

Das ist nicht notwendig. Die Funktion gibt nur an, wonach sortiert werden muss, d.h. sie wird immer wieder intern paarweise für 2 Werte aufgerufen und handelt den Vergleich für dich. Die Größe des Arrays ist dabei egal.

0
geri3d 27.06.2016, 11:00

Danke! Weil ich es noch nie so richtig verstanden habe, du übergibst eine Funktion an sort die den Vergleich durchführt. Könnte man an dieser Stelle auch eine Lambdafunktion übergeben?

0
Sarkophator 28.06.2016, 01:25
@geri3d

Wenn eine Funktion erwartet wird, dann kannst du generell in Javascript immer sowohl benannte als auch anonyme Funktionen weitergeben, die werden auf gleiche Weise verarbeitet. Je nach Situation könnte das eine besser als das andere sein, der o.g. Fall könnte also auch:

numArray.sort(function(a,b) { return a-b; });

lauten.

0
Sarkophator 28.06.2016, 01:33
@Sarkophator

Das gleiche gilt übrigens auch für die neuen ES6 Pfeilfunktionen:

numArray.sort((a,b) => { return a-b; });
0

Was möchtest Du wissen?