Wie funktioniert array.sort? [Duplikat]

8
%Vor%

In einer Callback-Funktion, was bedeuten a und b Variablen? Warum und wie macht b-a Array genau in absteigender Reihenfolge?

    
DrStrangeLove 09.07.2011, 23:06
quelle

3 Antworten

5

a und b sind zwei der Werte im Array, die Sie vergleichen, damit Javascript sie sortieren kann.

Die Funktion wird oft aufgerufen, um festzustellen, wo jedes Element im Array mit allen anderen verglichen wird. Die genaue Häufigkeit, mit der die Funktion aufgerufen wird, hängt von der Anzahl der Elemente im Array und ihrer ursprünglichen Reihenfolge ab.

Sie müssen 0 zurückgeben, wenn die zwei Elemente gleich sind, eine negative Zahl, wenn a vor b sein sollte und eine positive Zahl, wenn b vor a stehen sollte.

    
lonesomeday 09.07.2011, 23:13
quelle
1

Die Sortierfunktion hat einen internen Sortieralgorithmus. Sie geben nur eine Möglichkeit für den Algorithmus, bei zwei Mitgliedern des Arrays zu bestimmen, welcher von ihnen größer ist (das ist der Zweck von b-a ). Dadurch wird der Algorithmus in der Lage sein, die Elemente in den notwendige Reihenfolge.

    
manojlds 09.07.2011 23:10
quelle
-1

Wenn keine Parameter übergeben werden, wird die lexikografische Reihenfolge in aufsteigender Reihenfolge (alphabetisch) angegeben.

Sie haben jedoch auch die Möglichkeit, eine Funktion zu übergeben, mit der array.sort Ihr Array sortiert. Die Funktion, die Sie übergeben, soll genau zwei Elemente miteinander vergleichen, und die Funktion array.sort verwendet Ihre Funktion, um das gesamte Array effizient zu sortieren. Ihre Funktion soll nur die beiden Werte vergleichen.

Ihre Funktion sollte eine negative Zahl zurückgeben, wenn a vor b steht, 0, wenn a gleich b ist, und eine positive Zahl, wenn a hinter b steht. Deshalb arbeitet return b - a in absteigender Reihenfolge, denn wenn b - a positiv ist, ist b größer und kommt daher vor a, also "absteigend". Ähnlich für negative und äquivalente Werte.

    
Andrew Rasmussen 09.07.2011 23:15
quelle

Tags und Links