2 Stimmen

Was ist der Wert 1 und der Wert 2 in der Funktion von javascript für die Sortiermethode

Der Code lautet wie folgt:

 function compare(value1, value2){
      return (value1-value2); 
   };
   var values = [0, 1, 5, 10, 15];
   values.sort(compare);
   alert(values);

Was bedeuten value1 und value2 in diesem Code? Warum wird, wenn ich value1 - value2 zurückgebe, das Array-Element in aufsteigender Reihenfolge zurückgegeben, aber warum wird, wenn ich value2 - value1 in der Funktion zurückgebe, das Array-Element in absteigender Reihenfolge zurückgegeben?

Eine weitere Frage, die ich stellen möchte, ist, warum es kein Argument gibt, wenn die Vergleichsfunktion in der Sortiermethode definiert ist?

3voto

Chris Punkte 49965

Die Funktion compare wird für jedes Paar im Array aufgerufen. In Ihrem Fall würde compare also für 0 und 1, 1 und 5, 5 und 10, 10 und 15 aufgerufen werden.

Die Argumente a stehen für das erste Element des Paares und b für das zweite Element des Paares. In Ihrem Beispiel würde compare tatsächlich 4 Mal aufgerufen werden, einmal für jedes Paar.

Der Grund, warum compare nicht innerhalb von .sort(compare) aufgerufen wird, ist, dass es sich um einen Verzögerungsaufruf handelt - er wird nicht direkt dort aufgerufen, sondern von sort. In diesem Fall also compare ist nur der Verweis auf die Funktion.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X