logo

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.

taula ascii java

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ó:

Elsort()>mètode reordena els elements delarr>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.

què és f5 al teclat
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ó:

Elsort()>El mètode s'anomena en una matriu de nombres[2, 5, 8, 1, 4]>. Elsort()>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.

primavera mvc

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 elsort()>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>a9>). Després ve0>, Seguit per100>,20>,30>, i5.2>.

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

velocitat de transmissió en arduino

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ó:

  • Elcompare>la funció restab>des dea>. Si el resultat és negatiu,a>ve abansb>a la matriu ordenada; si és positiu,b>ve abansa>; si és zero, el seu ordre relatiu roman sense canvis.
  • En proporcionar aquesta funció de comparació personalitzada alsort()>mètode, JavaScript ordena la matriunumbers>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