JavaScript: objektu masīva kārtošana pēc īpašuma vērtības

JavaScript: objektu masīva kārtošana pēc īpašuma vērtības
JavaScript

JavaScript objektu kārtošana pēc virknes īpašuma

Objektu masīvu kārtošana ir izplatīts uzdevums JavaScript, jo īpaši strādājot ar datiem, kas jāparāda noteiktā secībā. Viens tipisks scenārijs ietver objektu masīva kārtošanu pēc virknes īpašuma vērtības, piemēram, uzvārda vai nosaukuma.

Šajā rakstā mēs izpētīsim, kā kārtot JavaScript objektu masīvu pēc virknes rekvizīta vērtības. Mēs pārbaudīsim metodes “sort()” izmantošanu un apspriedīsim, vai ir nepieciešamas papildu darbības, piemēram, metodes “toString()” pievienošana objektiem.

Komanda Apraksts
sort(function(a, b) {...}) Definē pielāgotu kārtošanas funkciju, lai noteiktu masīva elementu secību, pamatojoties uz konkrētiem kritērijiem.
localeCompare() Salīdzina divas virknes pašreizējā lokalizācijā, atgriežot skaitli, kas norāda, vai atsauces virkne ir pirms vai pēc norādītās virknes, vai arī tā ir tāda pati kā dotā virkne.
console.log() Izvada informāciju konsolei, parasti atkļūdošanas nolūkos.

Detalizēts JavaScript objektu kārtošanas skaidrojums

Iepriekš sniegtie skripti ir paredzēti, lai kārtotu JavaScript objektu masīvu pēc izsauktā virknes rekvizīta vērtības last_nom. Pirmajā piemērā mēs izmantojam sort(function(a, b) {...}) metode, kas ļauj mums definēt pielāgotu šķirošanas funkciju. Šī funkcija salīdzina last_nom katra objekta īpašums. Ja pirmais objekts ir last_nom ir mazāks par otrā objekta last_nom, tas atgriež -1, norādot, ka pirmajam objektam ir jābūt pirms otrā. Ja pirmais objekts ir last_nom ir lielāks, tas atgriež 1, kas nozīmē, ka pirmajam objektam ir jānāk pēc otrā. Ja tie ir vienādi, tas atgriež 0, norādot, ka viņu pozīcijām ir jāpaliek nemainīgām.

Otrajā skriptā tiek izmantota kodolīgāka ES6 sintakse. The localeCompare() ietvaros tiek izmantota metode sort() funkcija, lai salīdzinātu last_nom objektu īpašības. Šī metode atgriež skaitli, kas norāda, vai virkne ir pirms, pēc vai ir tāda pati kā cita virkne pašreizējā lokalizācijā. The console.log() funkcija tiek izmantota abos skriptos, lai izvadītu sakārtoto masīvu konsolei pārbaudei. Abas metodes efektīvi kārto objektu masīvu pēc last_nom īpašumu, parādot, kā rīkoties ar objektu rekvizītu kārtošanu JavaScript.

Objektu masīva kārtošana pēc virknes īpašuma JavaScript

Klienta puses JavaScript

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

Objektu masīva kārtošana pēc virknes rekvizīta, izmantojot ES6 sintaksi

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

Objektu masīva kārtošana pēc virknes īpašuma JavaScript

Klienta puses JavaScript

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

Objektu masīva kārtošana pēc virknes rekvizīta, izmantojot ES6 sintaksi

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

Uzlabotas metodes objektu kārtošanai JavaScript

Šķirot objektu masīvu pēc virknes rekvizīta JavaScript, ir svarīgi saprast sort() metodi. Pēc noklusējuma sort() metode kārto elementus kā virknes. Tas var radīt negaidītus rezultātus, strādājot ar cipariem vai speciālajām rakstzīmēm. Lai nodrošinātu precīzu kārtošanu, jo īpaši ar virknes īpašībām, jums vajadzētu izmantot pielāgotu salīdzināšanas funkciju. Papildus localeCompare(), vēl viens noderīgs paņēmiens ir reģistrjutība. JavaScript virkņu salīdzinājums pēc noklusējuma ir reģistrjutīgs, tāpēc “a” tiks uzskatīts par mazāku nekā “A”. Lai no tā izvairītos, salīdzināšanas funkcijā visas virknes varat pārvērst par mazajiem vai lielajiem burtiem.

Vēl viens svarīgs aspekts, kas jāņem vērā, ir kārtošana pēc vairākiem rekvizītiem. Piemēram, ja diviem objektiem ir vienādi last_nom vērtību, iespējams, vēlēsities tos kārtot pēc first_nom. To var panākt, paplašinot pielāgoto salīdzināšanas funkciju, iekļaujot tajā papildu nosacījumus. Šāda daudzlīmeņu šķirošana nodrošina datu visaptverošu sakārtošanu, nodrošinot jēgpilnākus rezultātus. Izprotot un izmantojot šīs uzlabotās kārtošanas metodes, varat efektīvi apstrādāt sarežģītākus datu kārtošanas scenārijus programmā JavaScript.

Bieži uzdotie jautājumi par JavaScript objektu kārtošanu

  1. Kā kārtot objektu masīvu pēc virknes īpašības?
  2. Izmantojiet sort() metode ar pielāgotu salīdzināšanas funkciju, izmantojot localeCompare() virkņu salīdzināšanai.
  3. Vai JavaScript šķirošana ir reģistrjutīga?
  4. Jā, pēc noklusējuma. Lai no tā izvairītos, salīdzināšanas funkcijā pārveidojiet virknes uz mazajiem vai lielajiem burtiem.
  5. Kā jūs veicat kārtošanu pēc vairākiem rekvizītiem?
  6. Paplašiniet pielāgoto salīdzināšanas funkciju, lai iekļautu papildu nosacījumus kārtošanai pēc sekundārajiem rekvizītiem.
  7. Vai jums ir jāpievieno a toString() jūsu objektu šķirošanas metode?
  8. Nē, pietiek ar pielāgotas salīdzināšanas funkcijas izmantošanu.
  9. Ko dara localeCompare() darīt?
  10. Tas salīdzina divas virknes pašreizējā lokalizācijā un atgriež skaitli, kas norāda to secību.
  11. Vai varat kārtot objektus pēc skaitliskām īpašībām, izmantojot to pašu metodi?
  12. Jā, jūs varat pielāgot salīdzināšanas funkciju, lai apstrādātu arī skaitliskos salīdzinājumus.
  13. Kā izvadāt sakārtoto masīvu?
  14. Izmantot console.log() lai izdrukātu sakārtoto masīvu konsolei pārbaudei.
  15. Kāda ir atdeves vērtību nozīme salīdzināšanas funkcijā?
  16. Tie nosaka elementu secību: -1 ir mazāks par, 1 ir lielāks par un 0 vienāds.

Objektu kārtošanas iesaiņošana JavaScript

Objektu masīva kārtošanu pēc virknes rekvizīta JavaScript var efektīvi panākt, izmantojot sort() metode ar pielāgotu salīdzināšanas funkciju. Izmantojot sviras efektu localeCompare() un apstrādājot reģistrjutību, varat nodrošināt precīzu un jēgpilnu datu šķirošanu. Šo metožu izpratne ļauj labāk manipulēt ar datiem un to prezentāciju, viegli apmierinot sarežģītākus scenārijus. Turklāt šķirošana pēc vairākiem rekvizītiem piešķir vēl vienu sarežģītības līmeni, padarot sakārtoto izvadi atbilstošāku un sakārtotāku.