JavaScript Array sort() Metoda
The sort()> metodă în JavaScript aranjează elementele unei matrice în loc și returnează matricea sortată. În mod implicit, sortează elementele alfabetic, tratându-le ca șiruri.
Cu toate acestea, pentru sortarea numerică, puteți oferi o funcție de comparare personalizată. Această funcție dictează criteriile de sortare, permițând un control precis asupra procesului de sortare. `sort()` îmbunătățește eficiența și funcționalitatea aplicațiilor JavaScript, permițându-vă să organizați elementele matricei conform cerințelor specifice într-o manieră profesională și formală.
Sintaxă
arr.sort(compareFunction);
Parametrii
-
array>: Matricea de sortat. -
compareFunction>(Opțional): O funcție care definește ordinea de sortare. Dacă sunt omise, elementele matricei sunt sortate pe baza șirului lor de puncte de cod Unicode.
Valoare returnată
Această metodă returnează referința matricei originale sortate.
Exemple:
Exemplul 1: Sortarea unei matrice de șiruri
Acest exemplu arată utilizarea funcției sort().
JavaScript // JavaScript to illustrate sort() function function func() { // Original string let arr = ['Geeks', 'for', 'Geeks'] console.log(arr); // Sorting the array console.log(arr.sort()); } func(); Ieșire
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ]
Explicaţie:
The sort()> metoda rearanjează elementele arr> matrice în ordine alfabetică, producând rezultatul ['Geeks', 'Geeks', 'for']> .
Exemplul 2: Sortarea unei matrice de numere fără funcție de comparare
Aici fel() metoda aranjează elementele tabloului în ordine crescătoare.
JavaScript // JavaScript to illustrate sort() function function func() { //Original string let arr = [2, 5, 8, 1, 4] //Sorting the array console.log(arr.sort()); } func(); Ieșire
[ 1, 2, 4, 5, 8 ]
Explicaţie:
The sort()> metoda este apelată pe o matrice de numere [2, 5, 8, 1, 4]> . The sort()> metoda va sorta elementele alfabetic deoarece nu este furnizată nicio funcție de comparație. Prin urmare, rezultatul va fi [1, 2, 4, 5, 8]> , care este sortat alfabetic pe baza reprezentărilor în șir ale numerelor.
Exemplul 3: Sortarea valorii numerice fără funcție de comparare
Aici, sortăm valori numerice fără funcție de comparare
Javascript let numbers = [20, 5.2, -120, 100, 30, 0] console.log(numbers.sort())
Ieșire
[ -120, 0, 100, 20, 30, 5.2 ]
Explicaţie:
Când utilizați sort()> metoda fără o funcție de comparare, JavaScript sortează elementele matricei ca șiruri în mod implicit, ceea ce poate să nu producă întotdeauna rezultatele așteptate pentru matricele numerice. Să descompunem procesul de sortare:
- JavaScript convertește fiecare element al matricei într-un șir.
- Apoi compară unitățile de cod UTF-16 ale fiecărui caracter din șiruri și le sortează pe baza valorii punctului de cod Unicode.
Iată ce se întâmplă cu matricea dvs.:
- Numerele sunt convertite în șiruri de caractere:
['20', '5.2', '-120', '100', '30', '0']>. - Când sunt sortate alfabetic,
-120>vine pe primul loc pentru că->are o valoare mai mică a punctului de cod Unicode decât cifrele (0>la9>). Apoi vine0>, urmată de100>,20>,30>, și5.2>.
Exemplul 4: Sortarea valorii numerice cu funcția de comparare
Putem rezolva eroarea neașteptată care a apărut în exemplul de mai sus utilizând metoda sort() pentru cifre folosind următoarea funcție de comparare.
Javascript let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic: 20 - (5.2) = +ve =>5.2 ar fi plasat înainte de 20, 20 - (-120) = +ve => -120 ar fi plasat înainte de 20, 20 - (100) = -ve => 100 ar fi plasat după 20, 20 - (30) = - ve => 30 ar fi plasat după 20, 20 - (0) = +ve => 0 ar fi plasat înainte de 20, În mod similar pentru fiecare element, le verificăm și le plasăm corespunzător în iterații. */ function compare(a, b) { return a - b; } console.log(numbers.sort(compare));>>>
Ieșire Explicaţie: - The
compare> funcția scade b> din a> . Dacă rezultatul este negativ, a> vine înainte de b> în tabloul sortat; dacă este pozitiv, b> vine înainte de a> ; dacă este zero, ordinea lor relativă rămâne neschimbată. - Prin furnizarea acestei funcții de comparare personalizată pentru
sort()> metoda, JavaScript sortează matricea numbers> pe baza valorilor numerice ale elementelor sale.
Vă rugăm să treceți prin asta Cum se sortează matricea numerică folosind JavaScript? , pentru a ști cum funcționează funcția de sortare a matricei javascript
Avem o listă completă de metode Javascript Array, pentru a le verifica, vă rugăm să parcurgeți aceasta Javascript Array Referință completă articol.
Browsere acceptate:
- Google Chrome
- Margine
- Internet Explorer
- Firefox
- Operă
- Safari