Frage von kaVonChemie153, 57

Javascript number array sortieren?

ich versuche sein 30 minuten einen array mit 8 zahlen zu sortieren ( bsp: 49,2,34,1,33,12,3,25) doch ich kriege nur das ergebnis: 1,12,2,25,3,33,34,49 und das gewollte wäre 1,2,3,12,25,33,34,49

Antwort
von Jonas711, 42

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

Daher: 

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

var numArray = [140000, 104, 99];
numArray.sort(sortNumber);
alert(numArray.join(","));
Kommentar von kaVonChemie153 ,

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

Kommentar von Jonas711 ,

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.

Kommentar von geri3d ,

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?

Kommentar von Sarkophator ,

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.

Kommentar von Sarkophator ,

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

numArray.sort((a,b) => { return a-b; });
Antwort
von Mitsumi, 47

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...

Kommentar von kaVonChemie153 ,

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 ^^

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten