Použití Array.prototype.sort()

Úvod

sort() metoda třídí prvky pole na místě a vydává nově seřazené pole. Ve výchozím nastavení se pořadí řazení zvyšuje, založené na převodu daných prvků na řetězce a následném porovnání jejich sekvencí hodnot kódových jednotek UTF-16.

Pojďme se podívat, jak se tato metoda dělá.

Syntaxe:

// Functionless
sort()

// Arrow function
sort((firstEl, secondEl) => { ... } )

// Compare function
sort(compareFn)

// Inline compare function
sort(function compareFn(firstEl, secondEl) { ... })

Parametry:

compareFunction Optional
Určuje funkci, která definuje pořadí řazení. Pokud vynecháte, prvky pole se převedou na řetězce a poté se seřadí podle bodové hodnoty kódu Unicode každého znaku.

firstEl
První prvek pro srovnání.

secondEl
Druhý prvek pro srovnání.

Návratová hodnota:

Vrácenou hodnotou je nově seřazené pole. Note: The newly sorted array is in place of the previous unsorted one

Příklad:

const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);

The expected output is: Array ["Dec", "Feb", "Jan", "March"]

Výstup:

> Array ["Dec", "Feb", "Jan", "March"]

Aplikace sort()

Nyní, když rozumíme tomu, jak skutečně používat sort() , podívejme se na několik příkladů jeho aplikace a kde ji můžeme použít.

Sort numbers in an array in ascending order:

const points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a-b});

Find the lowest value in an array:

const points = [40, 100, 1, 5, 25, 10];

// Sort the numbers in ascending order
points.sort(function(a, b){return a-b});

// points[0] = 1 (the lowest value)

Find the highest value in an array:

const points = [40, 100, 1, 5, 25, 10];

// Sort the numbers in descending order:
points.sort(function(a, b){return b-a});

// points[0] = 100 (the highest value)

Sort an array alphabetically, and then reverse the order:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();

Kompatibilita prohlížeče:

Na závěr

Jak jsme nyní viděli sort() má spoustu velmi užitečných aplikací, které nám mohou pomoci zefektivnit úkol, který se snažíme dokončit. Třídění je klíčovou základní metodou při práci s Javascriptem. Proto je důležité porozumět jeho funkci a správnému použití.

Viz také:

•Polyfill Array.prototype.sort s moderním chováním, jako je stabilní řazení, je dostupné v core-js :
https://github.com/zloirock/core-js#ecmascript-array
Array.prototype.sort() na webových dokumentech MDN:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort