JavaScript Array sort() metóda

The sort()> metóda v JavaScripte usporiada prvky poľa na miesto a vráti zoradené pole. V predvolenom nastavení triedi prvky podľa abecedy a považuje ich za reťazce.

Pre číselné triedenie však môžete poskytnúť vlastnú porovnávaciu funkciu. Táto funkcia určuje kritériá triedenia, čo umožňuje presnú kontrolu nad procesom triedenia. `sort()` zvyšuje efektivitu a funkčnosť aplikácií JavaScript tým, že vám umožňuje organizovať prvky poľa podľa špecifických požiadaviek profesionálnym a formálnym spôsobom.

Syntax

arr.sort(compareFunction); 

Parametre

  • array> : Pole, ktoré sa má zoradiť.
  • compareFunction> (Voliteľné): Funkcia, ktorá definuje poradie zoradenia. Ak sa vynechá, prvky poľa sa zoradia podľa ich bodov v kóde Unicode reťazca.

Návratová hodnota

Táto metóda vráti referenciu zoradeného pôvodného poľa.

Príklady:

Príklad 1: Triedenie poľa reťazcov

Tento príklad ukazuje použitie funkcie 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(); 

Výkon
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

Vysvetlenie:

The sort()> metóda preusporiadava prvky arr> pole v abecednom poradí, čím sa vytvorí výstup ['Geeks', 'Geeks', 'for']> .

Príklad 2: Triedenie poľa čísel bez porovnávacej funkcie

Tu, zoradiť () metóda usporiada prvky poľa vo vzostupnom poradí.

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

Výkon
[ 1, 2, 4, 5, 8 ] 

Vysvetlenie:

The sort()> metóda sa volá na poli čísel [2, 5, 8, 1, 4]> . The sort()> metóda zoradí prvky abecedne, pretože nie je poskytnutá žiadna porovnávacia funkcia. Preto bude výstup [1, 2, 4, 5, 8]> , ktorý je zoradený abecedne na základe reťazcových reprezentácií čísel.

Príklad 3: Triedenie číselnej hodnoty bez porovnávacej funkcie

Tu triedime číselnú hodnotu bez porovnávacej funkcie

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

Výkon
[ -120, 0, 100, 20, 30, 5.2 ] 

Vysvetlenie:

Keď použijete sort()> metóda bez porovnávacej funkcie, JavaScript štandardne triedi prvky poľa ako reťazce, čo nemusí vždy priniesť očakávané výsledky pre číselné polia. Poďme si rozobrať proces triedenia:

  • JavaScript konvertuje každý prvok poľa na reťazec.
  • Potom porovná jednotky kódu UTF-16 každého znaku v reťazcoch a zoradí ich na základe bodovej hodnoty kódu Unicode.

S vaším poľom sa stane toto:

  • Čísla sa prevedú na reťazce: ['20', '5.2', '-120', '100', '30', '0']> .
  • Pri zoradení podľa abecedy, -120> je na prvom mieste, pretože -> má nižšiu bodovú hodnotu Unicode ako číslice ( 0> do 9> ). Potom príde 0> , nasledovaný 100> , 20> , 30> , a 5.2> .

Príklad 4: Triedenie číselnej hodnoty s funkciou porovnávania

Neočakávanú chybu, ktorá sa vyskytla vo vyššie uvedenom príklade, môžeme vyriešiť použitím metódy sort() pre čísla pomocou nasledujúcej porovnávacej funkcie.

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2 by sa umiestnilo pred 20, 20 - (-120) = +ve => -120 by sa umiestnilo pred 20, 20 - (100) = -ve => 100 by sa umiestnilo za 20, 20 - (30) = - ve => 30 by sa umiestnilo za 20, 20 - (0) = +ve => 0 by sa umiestnilo pred 20, Podobne pre každý prvok ich kontrolujeme a umiestňujeme ich v iteráciách. */ funkcia porovnaj(a, b) { return a - b; } console.log(čísla.zoradiť(porovnať)); 

Výkon
[ -120, 0, 5.2, 20, 30, 100 ] 

Vysvetlenie:

  • The compare> funkcia odčítava b> od a> . Ak je výsledok negatívny, a> prichádza skôr b> v triedenom poli; ak je pozitívny, b> prichádza skôr a> ; ak je nula, ich relatívne poradie zostáva nezmenené.
  • Poskytnutím tejto funkcie vlastného porovnávania pre sort()> JavaScript triedi pole numbers> na základe číselných hodnôt jeho prvkov.

Prejdite si to prosím Ako triediť číselné pole pomocou JavaScriptu? , aby ste vedeli, ako funguje funkcia triedenia poľa javascript

Máme kompletný zoznam metód Javascript Array, aby ste ich skontrolovali, prejdite si toto Javascript Array Kompletná referencia článok.

Podporované prehliadače:

  • Google Chrome
  • Hrana
  • internet Explorer
  • Firefox
  • Opera
  • Safari