Heim  >  Artikel  >  Web-Frontend  >  Was ist die Sortiermethode des es6-Arrays?

Was ist die Sortiermethode des es6-Arrays?

青灯夜游
青灯夜游Original
2022-04-11 18:04:2312885Durchsuche

Die Sortiermethode des es6-Arrays ist „sort()“. Die Methode sort() wird zum Sortieren der Elemente des Arrays verwendet. Die Sortierreihenfolge kann alphabetisch oder numerisch sein, und zwar in aufsteigender oder absteigender Reihenfolge. Diese Methode verfügt über einen optionalen Parameter, der eine Funktion sein muss und die Syntax ist „array. sort(callback(a,b))“.

Was ist die Sortiermethode des es6-Arrays?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer. Die Methode

sort() wird verwendet, um die Elemente eines Arrays zu sortieren.

  • Die Sortierreihenfolge kann alphabetisch oder numerisch sowie aufsteigend oder absteigend sein.

  • Die Standardsortierreihenfolge ist alphabetisch aufsteigend.

Unter diesen verfügt die Methode sort() über einen optionalen Parameter. Dieser Parameter muss jedoch eine Funktion sein. Wenn beim Aufruf der Methode sort() eines Arrays keine Parameter übergeben werden, werden die Elemente im Array in alphabetischer Reihenfolge sortiert (Reihenfolge der Zeichenkodierung). Wenn Sie nach anderen Kriterien sortieren möchten, müssen Sie einen Parameter übergeben und es ist eine Funktion. Diese Funktion vergleicht zwei Werte und gibt eine Zahl zurück, die die relative Reihenfolge der beiden Werte beschreibt.

Syntax:

array.sort(callback(a,b))
Parameter Beschreibung
callback(a,b)

Optional. Gibt die Sortierreihenfolge an. Muss eine Funktion sein.

Rückgabewert: Array-Typ, der eine Referenz auf das Array ist. Bitte beachten Sie, dass das Array nach dem Original-Array sortiert wird und keine Kopie erstellt wird.

Beispiel:

 //sort的基本使用
  let arr = [8, 1, 4, 3, 7, 9]
  let Arr = [21, 55, 29, 105, 45]
  console.log(arr.sort()) //[1, 3, 4, 7, 8, 9]
  console.log(Arr.sort()) // [105, 21, 29, 45, 55]

Was ist die Sortiermethode des es6-Arrays?

Wie aus dem obigen Code ersichtlich ist: Die Methode sort() kann Arrays nur innerhalb von 0-9 korrekt sortieren. Obwohl Array-Elemente mit mehr als zwei Ziffern einen Rückgabewert liefern, tun sie dies not Nicht das sortierte Ergebnis. Dies liegt daran, dass sort() eine interne Sortierung basierend auf ASCLL-Codes durchführt, nicht basierend auf numerischen Werten. Diese Methode kann also nicht einmal eine formale Sortierung nach Zahlen über zwei Ziffern durchführen. Wie unterscheidet sie sich von gesalzenem Fisch?

Hier kommt der wichtige Punkt: sort() kann einen Rückruf (a, b) empfangen, der zwei formale Parameter trägt, das heißt, a und b sind zwei Elemente, deren Größe gleich verglichen werden soll, und es muss eine Rückgabe erfolgen Wert.

  • Wenn der Rückgabewert von Callback eine positive Zahl ist, wird b vor a angeordnet.

  • Wenn der Rückgabewert von Callback eine negative Zahl ist, wird a vor b angeordnet Wenn Rückruf Wenn der Rückgabewert 0 ist, bleiben die Positionen von a und b unverändert

  • Jedes Mal, wenn eine Sortierung ausgeführt wird, werden die Positionen der beiden Parameter a und b im ursprünglichen Array basierend auf dem Rückgabewert ausgetauscht ;

  • Nachdem Sie das oben Gesagte gelesen haben, werden Sie von der Beschreibung verwirrt sein. Sie werden sich bestimmt fragen, wo der Rückgabewert liegt. Wer ist der eigentliche Parameter des Parameters a b? Sobald Sie den folgenden Code verstanden haben, ist das alles ein Kinderspiel!

     //sort 内部写法
      let Arr = [56, 21, 29, 105, 45]
      Arr.sort(function(a, b) { //callback
          if (a > b) { // a b 分别是Arr中的 56 21
              return 1  //返回正数 ,b排列在a之前
          } else {
              return -1 //返回负数 ,a排列在b之前
          }
      })
      console.log(Arr) //[21, 29, 45, 55, 105]
  • Ausführungslogik:

Es ist zu beachten, dass die beiden durch Callback( a , b ) empfangenen Parameter a = > aktuelles Element, b das nächste Element des aktuellen Elements sind, wenn das aktuelle Element und das Nächstes Element Wenn die Position unverändert bleibt, ist b der Index des nächsten Elements -1. Die Bedingung für die Beurteilung des Endes des Durchlaufs ist, dass der b-Parameter keinen Wert erhalten kann und beispielsweise in der dritten Runde endet Code, der Index des aktuellen Elements ist 3, dann ist b Das nächste Element, dh das vierte Element im 4-Array, kann nicht abgerufen werden und die Bedingungen für die Fortsetzung des Durchlaufs sind nicht erfüllt, sodass der Durchlauf endet!

Was ist die Sortiermethode des es6-Arrays?Lassen Sie uns über Rückgabewerte sprechen: Die im obigen Code geschriebenen Rückgabewerte 1 und -1 sind nur symbolische Darstellungen dafür, dass 1 eine positive Zahl und -1 eine negative Zahl ist, unabhängig davon, welchen Rückgabewert Sie in den Code schreiben , sort bestimmt nur intern, ob Ihr Rückgabewert positiv ist. Auch wenn die Gleichung wahr ist, gibt sie 100 zurück, oder wenn nicht, gibt sie -10000 zurück.

Erklärung der Abkürzung:

//简写 最终版  
  let Arr = [56, 21, 88, 10, 5, 77]
  Arr.sort((a, b) => a - b) //箭头函数不加大括号指向这个函数的返回值,可以不写return关键字
  console.log(Arr) //[5, 10, 21, 56, 77, 88]

Wie aus der obigen Abbildung ersichtlich ist, ist die interne Verarbeitungsmethode der Rückruffunktion a - b, anstatt zwei Zahlen zu vergleichen. Dies liegt daran, dass der Schritt des Vergleichs zweier Zahlen durch Sortieren erfolgt. Sie müssen lediglich den Rückgabewert angeben. Mathematisch gesehen gilt, dass große Zahlen – Dezimalzahlen = positive Zahlen, kleine Zahlen – große Zahlen = negative Zahlen sind. Beispiel 56 – 21 = Wenn 35 eine positive Zahl ist, ist der Rückgabewert eine positive Zahl und die positive Zahl stellt eine Positionsänderung dar

Was ist die Sortiermethode des es6-Arrays? 21 - 88 = 35 ist eine negative Zahl, der Rückgabewert ist eine negative Zahl und die negative Zahl stellt einen Positionswechsel dar;

Wenn in der Mathematik große Zahlen – Dezimalzahlen ≠ positive Zahlen, Dezimalzahlen – große Zahlen ≠ negative Zahlen, nicht so abgekürzt werden können. Es sollte also klar sein, dass die Sortierung intern einander vergleicht, anstatt sich gegenseitig zu subtrahieren

Das obige ist der detaillierte Inhalt vonWas ist die Sortiermethode des es6-Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn