Array.prototype.sort()

sort() je statická metoda pole, která třídí prvky pole na místě a vrací seřazené pole. Výchozí řazení je vzestupné, postavené na převodu prvků na řetězce a následném porovnání jejich sekvencí hodnot kódových jednotek UTF-16..

Co je tedy statická metoda?

-Statická metoda (nebo statická funkce) je metoda definovaná jako člen objektu, ale je přístupná přímo z konstruktoru objektu API, spíše než z instance objektu vytvořené pomocí konstruktoru Metody volané na instancích objektu se nazývají metoda instance.

sort() používá porovnávací funkci se dvěma argumenty, která porovnává dvě hodnoty a podle toho seřazuje

  • compareFunction(a, b) musí vždy vracet stejnou hodnotu, když je uvedena konkrétní dvojice prvků aab, protože její dva argumenty, kterými může být řetězec nebo číselné řetězce, jsou porovnávány na základě čísla UTF na základě připomenutí.

syntaxe:sort(compare(a, b))

Příklad:

funkce porovnej(a, b) {
if (a je menší než b podle nějakého kritéria řazení) {
návrat -1;
}
if (a je větší než b podle kritéria řazení) {
návrat 1;
}
// a musí být rovno b
návrat 0;
}

-Pokud je zadána funkce CompareFunction, všechny nedefinované prvky pole jsou seřazeny podle návratové hodnoty funkce porovnání (všechny nedefinované prvky jsou seřazeny na konec pole bez volání funkce CompareFunction).

  • Metodu řazení lze volat bez předání porovnávací funkce (Function Less) s výchozím vzestupným pořadím.

Syntaxe:sort()

Příklad:

const months =['březen', 'leden', 'únor', 'prosinec'];
měsíců.seřadit();
console.log(měsíce);
// očekávaný výstup:Array ["Dec", "Feb", "Jan", "March"]

Řazení pomocí mapy:

Čím více práce porovná funkce a čím více prvků je k seřazení, může být efektivnější použít k třídění mapu. Cílem je procházet pole jednou, abyste extrahovali skutečné hodnoty použité pro řazení do dočasného pole, seřadili dočasné pole a pak procházeli dočasné pole, abyste dosáhli správného pořadí.

Příklad:

// pole, které se má třídit
const data =['delta', 'alpha', 'charlie', 'bravo'];

// dočasné pole obsahuje objekty s pozicí a hodnotou řazení
const mapped =data.map((v, i) => {
return { i, hodnota:someSlowOperation(v) };
})

// řazení mapovaného pole obsahujícího redukované hodnoty

maped.sort((a, b) => {
if (a.value> b.value) {
návrat 1;
}
if (a.value návrat -1;
}
návrat 0;
});

const result =mapped.map(v => data[v.i]);

Časová složitost:

Časovou a prostorovou složitost tohoto druhu nelze zaručit, protože závisí na implementaci.

Kompatibilita:

Kromě Internet Exploreru sort() funguje v každém prohlížeči, mobilu a počítači také Dino a Node.js.