Ú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