JavaScript Array sort() Mètode

El sort()> mètode a JavaScript organitza els elements d'una matriu al seu lloc i retorna la matriu ordenada. Per defecte, ordena els elements alfabèticament, tractant-los com a cadenes.

Tanmateix, per a l'ordenació numèrica, podeu proporcionar una funció de comparació personalitzada. Aquesta funció dicta els criteris d'ordenació, permetent un control precís del procés d'ordenació. `sort()` millora l'eficiència i la funcionalitat de les aplicacions JavaScript ja que us permet organitzar elements de matriu segons requisits específics d'una manera professional i formal.

Sintaxi

arr.sort(compareFunction); 

Paràmetres

  • array> : La matriu que s'ha d'ordenar.
  • compareFunction> (Opcional): una funció que defineix l'ordre d'ordenació. Si s'omet, els elements de la matriu s'ordenen en funció dels punts de codi Unicode de la seva cadena.

Valor de retorn

Aquest mètode retorna la referència de la matriu original ordenada.

Exemples:

Exemple 1: Ordenant una matriu de cadenes

Aquest exemple mostra l'ús de la funció 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(); 

Sortida
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

Explicació:

El sort()> mètode reordena els elements del arr> matriu alfabèticament, produint la sortida ['Geeks', 'Geeks', 'for']> .

Exemple 2: Ordenar una matriu de nombres sense funció de comparació

Aquí, el ordenar () El mètode ordena els elements de la matriu en ordre ascendent.

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(); 

Sortida
[ 1, 2, 4, 5, 8 ] 

Explicació:

El sort()> El mètode s'anomena en una matriu de nombres [2, 5, 8, 1, 4]> . El sort()> El mètode ordenarà els elements alfabèticament perquè no es proporciona cap funció de comparació. Per tant, la sortida serà [1, 2, 4, 5, 8]> , que s'ordena alfabèticament en funció de les representacions de cadena dels números.

Exemple 3: Ordenació de valors numèrics sense funció de comparació

Aquí, estem ordenant valors numèrics sense funció de comparació

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0] console.log(numbers.sort()) 

Sortida
[ -120, 0, 100, 20, 30, 5.2 ] 

Explicació:

Quan utilitzeu el sort()> sense una funció de comparació, JavaScript ordena els elements de la matriu com a cadenes de manera predeterminada, cosa que potser no sempre produeix els resultats esperats per a les matrius numèriques. Desglossem el procés de classificació:

  • JavaScript converteix cada element de la matriu en una cadena.
  • A continuació, compara les unitats de codi UTF-16 de cada caràcter de les cadenes i les ordena segons el valor del punt de codi Unicode.

Això és el que passa amb la vostra matriu:

  • Els números es converteixen en cadenes: ['20', '5.2', '-120', '100', '30', '0']> .
  • Quan s'ordenen alfabèticament, -120> ve primer perquè -> té un valor de punt de codi Unicode més baix que els dígits ( 0> a 9> ). Després ve 0> , Seguit per 100> , 20> , 30> , i 5.2> .

Exemple 4: Ordenació de valors numèrics amb funció de comparació

Podem resoldre l'error inesperat que es va produir a l'exemple anterior utilitzant el mètode sort() per a numèrics mitjançant la funció de comparació següent.

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2 es col·locaria abans del 20, 20 - (-120) = +ve => -120 es col·locaria abans del 20, 20 - (100) = -ve => 100 es col·locaria després del 20, 20 - (30) = - ve => 30 es col·locaria després de 20, 20 - (0) = +ve => 0 es col·locaria abans de 20, de la mateixa manera per a cada element, els comprovem i els col·loquem en conseqüència en iteracions. */ funció compare(a, b) { retorna a - b; } console.log(nombres.sort (comparar));>>>   
Sortida Explicació:

  • El compare> la funció resta b> des de a> . Si el resultat és negatiu, a> ve abans b> a la matriu ordenada; si és positiu, b> ve abans a> ; si és zero, el seu ordre relatiu roman sense canvis.
  • En proporcionar aquesta funció de comparació personalitzada al sort()> mètode, JavaScript ordena la matriu numbers> a partir dels valors numèrics dels seus elements.

Si us plau, passa per això Com ordenar la matriu numèrica mitjançant JavaScript? , per saber com funciona la funció d'ordenació de matrius javascript

Tenim una llista completa de mètodes Javascript Array, per comprovar-los, si us plau, aneu a través d'això Javascript Array Referència completa article.

Navegadors compatibles:

  • Google Chrome
  • Edge
  • Internet Explorer
  • Firefox
  • Òpera
  • Safari