JavaScript: Razvrščanje niza predmetov po vrednosti lastnosti

JavaScript: Razvrščanje niza predmetov po vrednosti lastnosti
JavaScript

Razvrščanje objektov JavaScript po lastnosti niza

Razvrščanje nizov predmetov je običajna naloga v JavaScriptu, zlasti pri delu s podatki, ki morajo biti prikazani v določenem vrstnem redu. En tipičen scenarij vključuje razvrščanje niza predmetov po vrednosti lastnosti niza, kot je priimek ali naslov.

V tem članku bomo raziskali, kako razvrstiti matriko objektov JavaScript po vrednosti lastnosti niza. Preučili bomo uporabo metode `sort()` in razpravljali o tem, ali so potrebni dodatni koraki, kot je dodajanje metode `toString()` objektom.

Ukaz Opis
sort(function(a, b) {...}) Definira funkcijo razvrščanja po meri za določanje vrstnega reda elementov matrike na podlagi posebnih meril.
localeCompare() Primerja dva niza v trenutnih področnih nastavitvah in vrne številko, ki označuje, ali je referenčni niz pred ali za ali je enak danemu nizu.
console.log() Izpiše informacije v konzolo, običajno za namene odpravljanja napak.

Podrobna razlaga razvrščanja predmetov JavaScript

Zgoraj navedeni skripti so zasnovani za razvrščanje matrike objektov JavaScript po vrednosti klicane lastnosti niza last_nom. V prvem primeru uporabljamo sort(function(a, b) {...}) metoda, ki nam omogoča definiranje funkcije razvrščanja po meri. Ta funkcija primerja last_nom lastnost vsakega predmeta. Če je prvi predmet last_nom je manjši od drugega predmeta last_nom, vrne -1, kar pomeni, da mora biti prvi predmet pred drugim. Če je prvi predmet last_nom večji, vrne 1, kar pomeni, da bi moral biti prvi predmet za drugim. Če sta enaka, vrne 0, kar pomeni, da morata njihova položaja ostati nespremenjena.

Drugi skript uporablja bolj jedrnato sintakso ES6. The localeCompare() metoda se uporablja znotraj sort() funkcijo za primerjavo last_nom lastnosti predmetov. Ta metoda vrne številko, ki označuje, ali je niz pred, za ali enak drugemu nizu v trenutnih področnih nastavitvah. The console.log() funkcija se uporablja v obeh skriptih za izpis razvrščenega niza v konzolo za preverjanje. Obe metodi učinkovito razvrščata niz predmetov po last_nom lastnosti, ki prikazuje, kako obravnavati razvrščanje lastnosti objektov v JavaScriptu.

Razvrščanje niza predmetov glede na lastnost niza v JavaScriptu

JavaScript na strani odjemalca

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);

Razvrščanje matrike predmetov glede na lastnost niza z uporabo sintakse 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);

Razvrščanje niza predmetov glede na lastnost niza v JavaScriptu

JavaScript na strani odjemalca

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);

Razvrščanje matrike predmetov glede na lastnost niza z uporabo sintakse 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);

Napredne tehnike za razvrščanje predmetov v JavaScriptu

Pri razvrščanju matrike predmetov glede na lastnost niza v JavaScriptu je bistveno razumeti zapletenost sort() metoda. Privzeto je sort() metoda razvrsti elemente kot nize. To lahko vodi do nepričakovanih rezultatov pri delu s številkami ali posebnimi znaki. Če želite zagotoviti natančno razvrščanje, zlasti z lastnostmi nizov, morate uporabiti funkcijo primerjave po meri. Poleg localeCompare(), je še ena uporabna tehnika obravnavanje občutljivosti na velike in male črke. Primerjava nizov v JavaScriptu privzeto razlikuje med velikimi in malimi črkami, zato bo 'a' manj kot 'A'. Da bi se temu izognili, lahko vse nize pretvorite v male ali velike črke v svoji funkciji za primerjavo.

Drug pomemben vidik, ki ga je treba upoštevati, je razvrščanje po več lastnostih. Na primer, če imata dva predmeta enako last_nom vrednosti, jih boste morda želeli dodatno razvrstiti po first_nom. To je mogoče doseči z razširitvijo funkcije primerjave po meri, da vključi dodatne pogoje. Takšno večnivojsko razvrščanje zagotavlja celovito urejenost podatkov, kar zagotavlja bolj smiselne rezultate. Z razumevanjem in uporabo teh naprednih tehnik razvrščanja lahko v JavaScriptu učinkovito obravnavate bolj zapletene scenarije razvrščanja podatkov.

Pogosta vprašanja o razvrščanju objektov JavaScript

  1. Kako razvrstite matriko predmetov glede na lastnost niza?
  2. Uporabi sort() metoda s funkcijo primerjave po meri z uporabo localeCompare() za primerjavo nizov.
  3. Ali razvrščanje JavaScript razlikuje med velikimi in malimi črkami?
  4. Da, privzeto. Pretvorite nize v male ali velike črke v funkciji primerjave, da se temu izognete.
  5. Kako ravnate z razvrščanjem po več lastnostih?
  6. Razširite funkcijo primerjave po meri, da vključite dodatne pogoje za razvrščanje po sekundarnih lastnostih.
  7. Ali morate dodati a toString() metodo do vaših predmetov za razvrščanje?
  8. Ne, zadostuje uporaba primerjalne funkcije po meri.
  9. Kaj počne localeCompare() narediti?
  10. Primerja dva niza v trenutnih področnih nastavitvah in vrne številko, ki označuje njun vrstni red.
  11. Ali lahko z isto metodo razvrstite predmete po številskih lastnostih?
  12. Da, funkcijo primerjave lahko prilagodite tako, da obravnava tudi številske primerjave.
  13. Kako izpišete razvrščeno matriko?
  14. Uporaba console.log() da natisnete razvrščeno matriko na konzolo za preverjanje.
  15. Kakšen je pomen vrnjenih vrednosti v funkciji primerjave?
  16. Določajo vrstni red elementov: -1 za manj kot, 1 za večje in 0 za enako.

Zaključek razvrščanja predmetov v JavaScriptu

Razvrščanje niza predmetov po lastnosti niza v JavaScriptu je mogoče učinkovito doseči z uporabo sort() metoda s funkcijo primerjave po meri. Z vzvodom localeCompare() in občutljivostjo na velike in male črke lahko zagotovite natančno in smiselno razvrščanje podatkov. Razumevanje teh tehnik omogoča boljšo manipulacijo in predstavitev podatkov ter z lahkoto poskrbi za bolj zapletene scenarije. Poleg tega razvrščanje po več lastnostih doda še eno plast prefinjenosti, zaradi česar je razvrščeni izhod bolj ustrezen in organiziran.