JavaScript: Sortiranje niza objekata prema vrijednosti svojstva

JavaScript: Sortiranje niza objekata prema vrijednosti svojstva
JavaScript

Sortiranje JavaScript objekata prema svojstvu niza

Razvrstavanje nizova objekata uobičajen je zadatak u JavaScriptu, osobito kada se radi s podacima koji se moraju prikazati određenim redoslijedom. Jedan tipičan scenarij uključuje sortiranje niza objekata prema vrijednosti svojstva niza, kao što je prezime ili naslov.

U ovom ćemo članku istražiti kako sortirati niz JavaScript objekata prema vrijednosti svojstva niza. Ispitat ćemo upotrebu metode `sort()` i raspravljati o tome jesu li potrebni dodatni koraci, poput dodavanja metode `toString()` objektima.

Naredba Opis
sort(function(a, b) {...}) Definira prilagođenu funkciju sortiranja za određivanje redoslijeda elemenata niza na temelju određenih kriterija.
localeCompare() Uspoređuje dva niza u trenutnom lokalitetu, vraćajući broj koji pokazuje dolazi li referentni niz prije ili poslije ili je isti kao dati niz.
console.log() Izlaz informacija na konzolu, obično u svrhu otklanjanja pogrešaka.

Detaljno objašnjenje JavaScript sortiranja objekata

Gore navedene skripte dizajnirane su za sortiranje niza JavaScript objekata prema vrijednosti svojstva niza pozvanih last_nom. U prvom primjeru koristimo sort(function(a, b) {...}) metoda, koja nam omogućuje definiranje prilagođene funkcije sortiranja. Ova funkcija uspoređuje last_nom svojstvo svakog objekta. Ako je prvi objekt last_nom manji je od drugog objekta last_nom, vraća -1, označavajući da bi prvi objekt trebao doći prije drugog. Ako je prvi objekt last_nom veći, vraća 1, što znači da prvi objekt treba doći nakon drugog. Ako su jednaki, vraća 0, što znači da njihovi položaji trebaju ostati nepromijenjeni.

Druga skripta koristi sažetiju ES6 sintaksu. The localeCompare() metoda se koristi unutar sort() funkcija za usporedbu last_nom svojstva objekata. Ova metoda vraća broj koji označava nalazi li se niz ispred, iza ili je isti kao drugi niz u trenutnoj lokalnoj postavci. The console.log() funkcija se koristi u obje skripte za izlaz sortiranog niza na konzolu radi provjere. Obje metode učinkovito sortiraju niz objekata prema last_nom svojstvo, pokazujući kako rukovati sortiranjem svojstava objekta u JavaScriptu.

Sortiranje niza objekata prema svojstvu niza u JavaScriptu

JavaScript na strani klijenta

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

Sortiranje niza objekata prema svojstvu niza pomoću ES6 sintakse

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

Sortiranje niza objekata prema svojstvu niza u JavaScriptu

JavaScript na strani klijenta

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

Sortiranje niza objekata prema svojstvu niza pomoću ES6 sintakse

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 sortiranje objekata u JavaScriptu

Prilikom sortiranja niza objekata prema svojstvu niza u JavaScriptu, bitno je razumjeti zamršenost sort() metoda. Prema zadanim postavkama, sort() metoda sortira elemente kao nizove. To može dovesti do neočekivanih rezultata pri radu s brojevima ili posebnim znakovima. Kako biste osigurali točno sortiranje, posebno sa svojstvima niza, trebali biste koristiti prilagođenu funkciju usporedbe. Osim toga localeCompare(), još jedna korisna tehnika je rukovanje osjetljivošću na velika i mala slova. JavaScriptova usporedba nizova prema zadanim je postavkama osjetljiva na velika i mala slova, pa će se 'a' smatrati manjim od 'A'. Da biste to izbjegli, možete pretvoriti sve nizove u mala ili velika slova unutar funkcije usporedbe.

Još jedan važan aspekt koji treba uzeti u obzir je sortiranje prema više svojstava. Na primjer, ako dva objekta imaju isti last_nom vrijednosti, možda ćete ih htjeti dalje sortirati po first_nom. To se može postići proširenjem prilagođene funkcije usporedbe za uključivanje dodatnih uvjeta. Takvo sortiranje na više razina osigurava da su podaci sveobuhvatno poredani, dajući smislenije rezultate. Razumijevanjem i primjenom ovih naprednih tehnika sortiranja, možete učinkovito rješavati složenije scenarije sortiranja podataka u JavaScriptu.

Uobičajena pitanja o razvrstavanju JavaScript objekata

  1. Kako sortirati niz objekata prema svojstvu niza?
  2. Koristiti sort() metoda s prilagođenom funkcijom usporedbe, koristeći localeCompare() za usporedbu nizova.
  3. Je li JavaScript sortiranje osjetljiv na velika i mala slova?
  4. Da, prema zadanim postavkama. Pretvorite nizove u mala ili velika slova unutar funkcije usporedbe kako biste to izbjegli.
  5. Kako rješavate sortiranje prema više svojstava?
  6. Proširite prilagođenu funkciju usporedbe kako biste uključili dodatne uvjete za sortiranje po sekundarnim svojstvima.
  7. Trebate li dodati a toString() način na svoje objekte za sortiranje?
  8. Ne, dovoljna je upotreba prilagođene funkcije usporedbe.
  9. Što znači localeCompare() čini?
  10. Uspoređuje dva niza u trenutnom jeziku i vraća broj koji označava njihov redoslijed.
  11. Možete li sortirati objekte prema numeričkim svojstvima koristeći istu metodu?
  12. Da, možete prilagoditi funkciju usporedbe za obradu i numeričkih usporedbi.
  13. Kako ispisujete sortirani niz?
  14. Koristiti console.log() za ispis sortiranog niza na konzolu radi provjere.
  15. Kakvo je značenje povratnih vrijednosti u funkciji usporedbe?
  16. Oni određuju redoslijed elemenata: -1 za manje od, 1 za veće i 0 za jednako.

Zaključavanje sortiranja objekata u JavaScriptu

Sortiranje niza objekata prema svojstvu niza u JavaScriptu može se učinkovito postići korištenjem sort() metoda s prilagođenom funkcijom usporedbe. Iskorištavanjem localeCompare() i rukovanje osjetljivošću na velika i mala slova, možete osigurati točno i smisleno sortiranje podataka. Razumijevanje ovih tehnika omogućuje bolju manipulaciju i prezentaciju podataka, s lakoćom zadovoljavajući složenije scenarije. Osim toga, sortiranje prema višestrukim svojstvima dodaje još jedan sloj sofisticiranosti, čineći sortirani izlaz relevantnijim i organiziranijim.