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))“.
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]
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]
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]
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!