Metoda sort() pole JavaScript

The sort()> metoda v JavaScriptu uspořádá prvky pole na místě a vrátí seřazené pole. Ve výchozím nastavení seřadí prvky podle abecedy a považuje je za řetězce.

Pro numerické třídění však můžete poskytnout vlastní porovnávací funkci. Tato funkce určuje kritéria třídění, což umožňuje přesnou kontrolu nad procesem třídění. `sort()` zvyšuje efektivitu a funkčnost aplikací JavaScript tím, že umožňuje organizovat prvky pole podle konkrétních požadavků profesionálním a formálním způsobem.

Syntax

arr.sort(compareFunction); 

Parametry

  • array> : Pole, které se má seřadit.
  • compareFunction> (Volitelné): Funkce, která definuje pořadí řazení. Pokud je vynechán, prvky pole jsou seřazeny podle jejich řetězcových bodů kódu Unicode.

Návratová hodnota

Tato metoda vrací odkaz na seřazené původní pole.

Příklady:

Příklad 1: Třídění pole řetězců

Tento příklad ukazuje použití funkce 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ýstup
[ 'Geeks', 'for', 'Geeks' ] [ 'Geeks', 'Geeks', 'for' ] 

Vysvětlení:

The sort()> metoda přeskupuje prvky arr> pole abecedně, produkující výstup ['Geeks', 'Geeks', 'for']> .

Příklad 2: Řazení pole čísel bez funkce porovnání

Tady, seřadit () metoda uspořádá prvky pole ve vzestupném pořadí.

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ýstup
[ 1, 2, 4, 5, 8 ] 

Vysvětlení:

The sort()> metoda je volána na poli čísel [2, 5, 8, 1, 4]> . The sort()> metoda seřadí prvky abecedně, protože není k dispozici žádná porovnávací funkce. Výstup tedy bude [1, 2, 4, 5, 8]> , který je řazen abecedně na základě řetězcových reprezentací čísel.

Příklad 3: Řazení číselné hodnoty bez funkce porovnání

Zde třídíme číselnou hodnotu bez porovnávací funkce

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

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

Vysvětlení:

Když použijete sort()> metoda bez funkce porovnání, JavaScript ve výchozím nastavení třídí prvky pole jako řetězce, což nemusí vždy přinést očekávané výsledky pro číselná pole. Pojďme si rozebrat proces řazení:

  • JavaScript převede každý prvek pole na řetězec.
  • Poté porovná jednotky kódu UTF-16 každého znaku v řetězcích a seřadí je na základě bodové hodnoty kódu Unicode.

Co se stane s vaším polem:

  • Čísla se převedou na řetězce: ['20', '5.2', '-120', '100', '30', '0']> .
  • Při abecedním řazení -120> je na prvním místě, protože -> má nižší bodovou hodnotu kódu Unicode než číslice ( 0> na 9> ). Pak přijde 0> , následován 100> , 20> , 30> , a 5.2> .

Příklad 4: Řazení číselné hodnoty pomocí funkce porovnání

Neočekávanou chybu, která se vyskytla ve výše uvedeném příkladu, můžeme vyřešit pomocí metody sort() pro numerické hodnoty pomocí následující funkce porovnání.

Javascript
let numbers = [20, 5.2, -120, 100, 30, 0]; /* Logic:   20 - (5.2) = +ve =>5.2 by bylo umístěno před 20, 20 - (-120) = +ve => -120 by bylo umístěno před 20, 20 - (100) = -ve => 100 by bylo umístěno po 20, 20 - (30) = - ve => 30 by bylo umístěno za 20, 20 - (0) = +ve => 0 by bylo umístěno před 20, Podobně pro každý prvek zkontrolujeme a umístíme je podle toho v iteracích. */ funkce porovnej(a, b) { return a - b; } console.log(čísla.sort(porovnat)); 

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

Vysvětlení:

  • The compare> funkce odečítá b> z a> . Pokud je výsledek negativní, a> přichází dříve b> v seřazeném poli; pokud pozitivní, b> přichází dříve a> ; pokud je nula, jejich relativní pořadí zůstane nezměněno.
  • Poskytnutím této vlastní porovnávací funkce pro sort()> JavaScript třídí pole numbers> na základě číselných hodnot jeho prvků.

Projděte si to prosím Jak seřadit číselné pole pomocí JavaScriptu? , abyste věděli, jak funguje funkce řazení pole javascript

Máme kompletní seznam metod Javascript Array, pro kontrolu si je prosím projděte toto Javascript Array Kompletní reference článek.

Podporované prohlížeče:

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