JavaScript: Triedenie poľa objektov podľa hodnoty vlastnosti

JavaScript

Triedenie objektov JavaScriptu podľa vlastnosti reťazca

Triedenie polí objektov je v JavaScripte bežnou úlohou, najmä pri práci s údajmi, ktoré je potrebné zobraziť v určitom poradí. Jeden typický scenár zahŕňa triedenie poľa objektov podľa hodnoty vlastnosti reťazca, ako je priezvisko alebo titul.

V tomto článku preskúmame, ako zoradiť pole objektov JavaScript podľa hodnoty vlastnosti reťazca. Preskúmame použitie metódy `sort()` a prediskutujeme, či sú potrebné ďalšie kroky, ako je pridanie metódy `toString()` k objektom.

Príkaz Popis
sort(function(a, b) {...}) Definuje vlastnú funkciu triedenia na určenie poradia prvkov poľa na základe špecifických kritérií.
localeCompare() Porovná dva reťazce v aktuálnom lokálnom nastavení a vráti číslo označujúce, či referenčný reťazec nasleduje pred alebo za daným reťazcom alebo či je rovnaký ako daný reťazec.
console.log() Výstup informácií do konzoly, zvyčajne na účely ladenia.

Podrobné vysvetlenie triedenia objektov JavaScriptu

Vyššie poskytnuté skripty sú navrhnuté tak, aby zoradili pole objektov JavaScript podľa hodnoty vlastnosti reťazca s názvom . V prvom príklade použijeme metóda, ktorá nám umožňuje definovať vlastnú triediacu funkciu. Táto funkcia porovnáva vlastnosť každého objektu. Ak je prvý objekt last_nom je menšia ako u druhého objektu , vráti -1, čo znamená, že prvý objekt by mal byť pred druhým. Ak je prvý objekt je väčší, vráti 1, čo znamená, že prvý objekt by mal nasledovať po druhom. Ak sú rovnaké, vráti 0, čo znamená, že ich pozície by mali zostať nezmenené.

Druhý skript používa stručnejšiu syntax ES6. The metóda sa používa v rámci funkcia na porovnanie vlastnosti predmetov. Táto metóda vracia číslo, ktoré označuje, či reťazec prichádza pred, za alebo je rovnaký ako iný reťazec v aktuálnom lokálnom nastavení. The console.log() funkcia sa používa v oboch skriptoch na výstup zoradeného poľa do konzoly na overenie. Obe metódy efektívne triedia pole objektov podľa vlastnosť, ktorá demonštruje, ako zvládnuť triedenie vlastností objektov v JavaScripte.

Triedenie poľa objektov podľa vlastnosti reťazca v JavaScripte

JavaScript na strane klienta

var objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort(function(a, b) {
    if (a.last_nom < b.last_nom) {
        return -1;
    }
    if (a.last_nom > b.last_nom) {
        return 1;
    }
    return 0;
});

console.log(objs);

Triedenie poľa objektov podľa vlastnosti reťazca pomocou syntaxe ES6

ES6 JavaScript

const objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort((a, b) => a.last_nom.localeCompare(b.last_nom));

console.log(objs);

Triedenie poľa objektov podľa vlastnosti reťazca v JavaScripte

JavaScript na strane klienta

var objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort(function(a, b) {
    if (a.last_nom < b.last_nom) {
        return -1;
    }
    if (a.last_nom > b.last_nom) {
        return 1;
    }
    return 0;
});

console.log(objs);

Triedenie poľa objektov podľa vlastnosti reťazca pomocou syntaxe ES6

ES6 JavaScript

const objs = [
    {first_nom: 'Laszlo', last_nom: 'Jamf'},
    {first_nom: 'Pig', last_nom: 'Bodine'},
    {first_nom: 'Pirate', last_nom: 'Prentice'}
];

objs.sort((a, b) => a.last_nom.localeCompare(b.last_nom));

console.log(objs);

Pokročilé techniky triedenia objektov v JavaScripte

Pri triedení poľa objektov podľa vlastnosti reťazca v JavaScripte je nevyhnutné pochopiť zložitosť metóda. V predvolenom nastavení je metóda triedi prvky ako reťazce. To môže viesť k neočakávaným výsledkom pri práci s číslami alebo špeciálnymi znakmi. Na zabezpečenie presného triedenia, najmä s vlastnosťami reťazcov, by ste mali použiť vlastnú porovnávaciu funkciu. Okrem tohoto , ďalšou užitočnou technikou je rozlišovanie malých a veľkých písmen. Porovnanie reťazcov JavaScriptu v predvolenom nastavení rozlišuje veľké a malé písmená, takže „a“ sa bude považovať za menšie ako „A“. Aby ste tomu zabránili, môžete v rámci porovnávacej funkcie previesť všetky reťazce na malé alebo veľké písmená.

Ďalším dôležitým aspektom, ktorý treba zvážiť, je triedenie podľa viacerých vlastností. Napríklad, ak majú dva objekty to isté hodnotu, možno ich budete chcieť ďalej zoradiť podľa . Dá sa to dosiahnuť rozšírením funkcie vlastného porovnávania o ďalšie podmienky. Takéto viacúrovňové triedenie zaisťuje, že údaje sú usporiadané komplexne a poskytujú zmysluplnejšie výsledky. Pochopením a aplikáciou týchto pokročilých techník triedenia môžete efektívne zvládnuť zložitejšie scenáre triedenia údajov v JavaScripte.

  1. Ako triedite pole objektov podľa vlastnosti reťazca?
  2. Použi metóda s vlastnou porovnávacou funkciou, využívajúca pre porovnanie reťazcov.
  3. Rozlišujú sa pri triedení v JavaScripte malé a veľké písmená?
  4. Áno, štandardne. Aby ste tomu zabránili, konvertujte reťazce na malé alebo veľké písmená v rámci porovnávacej funkcie.
  5. Ako riešite triedenie podľa viacerých vlastností?
  6. Rozšírte funkciu vlastného porovnávania tak, aby zahŕňala ďalšie podmienky zoradenia podľa sekundárnych vlastností.
  7. Potrebujete pridať a spôsob triedenia vašich objektov?
  8. Nie, stačí použiť vlastnú porovnávaciu funkciu.
  9. Čo robí robiť?
  10. Porovná dva reťazce v aktuálnom lokálnom nastavení a vráti číslo označujúce ich poradie.
  11. Môžete triediť objekty podľa číselných vlastností pomocou rovnakej metódy?
  12. Áno, funkciu porovnávania môžete prispôsobiť tak, aby zvládla aj číselné porovnania.
  13. Ako vytlačíte triedené pole?
  14. Použite na vytlačenie zoradeného poľa do konzoly na overenie.
  15. Aký význam majú návratové hodnoty v porovnávacej funkcii?
  16. Určujú poradie prvkov: -1 pre menšie ako, 1 pre väčšie ako a 0 pre rovnaké.

Triedenie poľa objektov podľa vlastnosti reťazca v JavaScripte možno efektívne dosiahnuť pomocou metóda s vlastnou porovnávacou funkciou. Pákovým efektom a zaobchádzaním s rozlíšením malých a veľkých písmen, môžete zabezpečiť presné a zmysluplné triedenie údajov. Pochopenie týchto techník umožňuje lepšiu manipuláciu s údajmi a ich prezentáciu, čím sa ľahko prispôsobia zložitejším scenárom. Okrem toho triedenie podľa viacerých vlastností pridáva ďalšiu úroveň sofistikovanosti, vďaka čomu je triedený výstup relevantnejší a organizovanejší.