ЈаваСцрипт: сортирање низа објеката према вредности својства

ЈаваСцрипт: сортирање низа објеката према вредности својства
JavaScript

Сортирање ЈаваСцрипт објеката према својству стринга

Сортирање низова објеката је уобичајен задатак у ЈаваСцрипт-у, посебно када се ради са подацима који треба да буду приказани одређеним редоследом. Један типичан сценарио укључује сортирање низа објеката према вредности својства стринга, као што је презиме или наслов.

У овом чланку ћемо истражити како сортирати низ ЈаваСцрипт објеката према вредности својства стринга. Испитаћемо употребу методе `сорт()` и разговараћемо о томе да ли су додатни кораци, попут додавања методе `тоСтринг()` објектима, неопходни.

Цомманд Опис
sort(function(a, b) {...}) Дефинише прилагођену функцију сортирања за одређивање редоследа елемената низа на основу специфичних критеријума.
localeCompare() Упоређује два стринга у тренутном локалу, враћајући број који показује да ли се референтни низ налази пре или после или је исти као дати стринг.
console.log() Излази информације на конзолу, обично у сврху отклањања грешака.

Детаљно објашњење сортирања ЈаваСцрипт објеката

Горе наведене скрипте су дизајниране да сортирају низ ЈаваСцрипт објеката према вредности својства стринга која се зове last_nom. У првом примеру користимо sort(function(a, b) {...}) метод, који нам омогућава да дефинишемо прилагођену функцију сортирања. Ова функција упоређује last_nom својство сваког објекта. Ако је први објекат last_nom је мањи од другог објекта last_nom, враћа -1, што указује да први објекат треба да дође пре другог. Ако је први објекат last_nom је већи, враћа 1, што значи да први објекат треба да дође после другог. Ако су једнаки, враћа 0, што указује да њихове позиције треба да остану непромењене.

Друга скрипта користи сажетију ЕС6 синтаксу. Тхе localeCompare() метода се користи у оквиру sort() функција за упоређивање last_nom својства објеката. Овај метод враћа број који показује да ли стринг долази пре, после или је исти као други стринг у тренутном локалу. Тхе console.log() функција се користи у обе скрипте за излаз сортираног низа на конзолу ради верификације. Обе методе ефикасно сортирају низ објеката према last_nom својства, демонстрирајући како се поступа са сортирањем својстава објеката у ЈаваСцрипт-у.

Сортирање низа објеката према својству стринга у ЈаваСцрипт-у

ЈаваСцрипт на страни клијента

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

Сортирање низа објеката према својству низа помоћу ЕС6 синтаксе

ЕС6 ЈаваСцрипт

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

Сортирање низа објеката према својству стринга у ЈаваСцрипт-у

ЈаваСцрипт на страни клијента

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

Сортирање низа објеката према својству низа помоћу ЕС6 синтаксе

ЕС6 ЈаваСцрипт

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

Напредне технике за сортирање објеката у ЈаваСцрипт-у

Када сортирате низ објеката према својству стринга у ЈаваСцрипт-у, неопходно је разумети замршеност sort() методом. Подразумевано, тхе sort() метода сортира елементе као низове. Ово може довести до неочекиваних резултата када се ради о бројевима или специјалним знаковима. Да бисте осигурали прецизно сортирање, посебно са својствима стрингова, требало би да користите прилагођену функцију поређења. Додатно localeCompare(), још једна корисна техника је управљање осетљивошћу великих и малих слова. ЈаваСцрипт-ово поређење стрингова је подразумевано осетљиво на велика и мала слова, тако да ће се 'а' сматрати мањим од 'А'. Да бисте то избегли, можете конвертовати све низове у мала или велика слова у оквиру функције за упоређивање.

Још један важан аспект који треба узети у обзир је сортирање према више својстава. На пример, ако два објекта имају исти last_nom вредности, можда бисте желели да их даље сортирате по first_nom. Ово се може постићи проширењем прилагођене функције поређења да би укључила додатне услове. Такво сортирање на више нивоа осигурава да су подаци свеобухватно поређани, пружајући значајније резултате. Разумевањем и применом ових напредних техника сортирања, можете ефикасно да рукујете сложенијим сценаријима сортирања података у ЈаваСцрипт-у.

Уобичајена питања о сортирању ЈаваСцрипт објеката

  1. Како сортирате низ објеката према својству стринга?
  2. Користити sort() метод са прилагођеном функцијом поређења, користећи localeCompare() за поређење низова.
  3. Да ли је ЈаваСцрипт сортирање осетљиво на велика и мала слова?
  4. Да, подразумевано. Конвертујте низове у мала или велика слова у оквиру функције за упоређивање да бисте то избегли.
  5. Како се носите са сортирањем по више својстава?
  6. Проширите прилагођену функцију поређења да бисте укључили додатне услове за сортирање према секундарним својствима.
  7. Да ли треба да додате а toString() метод за ваше објекте за сортирање?
  8. Не, довољно је коришћење прилагођене функције поређења.
  9. Шта ради localeCompare() урадите?
  10. Он упоређује два низа у тренутном локалу и враћа број који указује на њихов редослед.
  11. Можете ли сортирати објекте према нумеричким својствима користећи исти метод?
  12. Да, можете да прилагодите функцију упоређивања и за руковање нумеричким поређењима.
  13. Како избацујете сортирани низ?
  14. Користите console.log() да бисте одштампали сортирани низ на конзоли ради верификације.
  15. Какав је значај повратних вредности у функцији поређења?
  16. Они одређују редослед елемената: -1 за мање од, 1 за веће и 0 за једнако.

Завршавање сортирања објеката у ЈаваСцрипт-у

Сортирање низа објеката према својству стринга у ЈаваСцрипт-у може се ефикасно постићи коришћењем sort() метод са прилагођеном функцијом поређења. Уз помоћ полуге localeCompare() и руковањем осетљивошћу на велика и мала слова, можете обезбедити тачно и смислено сортирање података. Разумевање ових техника омогућава бољу манипулацију и презентацију података, с лакоћом задовољавајући сложеније сценарије. Поред тога, сортирање према више својстава додаје још један слој софистицираности, чинећи сортирани излаз релевантнијим и организованијим.