ЈаваСцрипт сортирање низа - Како се користе методе сортирања ЈС (са примерима кода)

У ЈаваСцрипт-у можемо лако сортирати елементе низа помоћу уграђене методе која се назива функција сорт ().

Међутим, типови података (низ, број и тако даље) могу се разликовати од једног низа до другог. То значи да употреба саме методе сорт () није увек одговарајуће решење.

У овом посту ћете научити како сортирати низ у ЈаваСцрипт-у помоћу методе сорт () за низове и бројеве.

Низ жица

Почнимо са низовима:

const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];

Када користимо методу сорт (), елементи ће се подразумевано сортирати у растућем редоследу (А до З):

teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']

Ако више желите да сортирате низ у опадајућем редоследу, уместо њега треба да користите метод реверсе ():

teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']

Низ бројева

Сортирање бројева нажалост није тако једноставно. Ако метод сортирања применимо директно на низ бројева, видећемо неочекивани резултат:

const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3

Зашто метода сорт () не ради за бројеве

Заправо ради, али овај проблем се дешава јер ЈаваСцрипт сортира бројеве по абецеди. Дозволите ми да ово детаљно објасним.

Замислимо А = 1, Б = 2 и Ц = 3.

const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]

Као пример, ако имамо три низа као Ц (3), БЦ (23) и АБ (12), ЈаваСцрипт ће их сортирати као АБ, БЦ и Ц у растућем редоследу, што је абецедно исправно.

Међутим, ЈаваСцрипт ће бројеве (поново по абецеди) сортирати као 12, 23 и 3, што је нетачно.

Решење: функција упоређивања

Срећом, методу сорт () можемо подржати основном функцијом упоређивања која ће учинити трик:

function(a, b) {return a - b}

На срећу, метода сортирања може сортирати негативне, нулте и позитивне вредности у правилном редоследу. Када метода сорт () упореди две вредности, шаље вредности нашој функцији упоређивања и сортира вредности према враћеној вредности.

  • Ако је резултат негативан, а се сортира пре б.
  • Ако је резултат позитиван, б се сортира пре а.
  • Ако је резултат 0, ништа се не мења.

Све што нам треба је коришћење функције упоређивања унутар методе сорт ():

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23

Ако бројеве желимо сортирати у опадајућем редоследу, овог пута треба одузети други параметар (б) од првог (а):

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3

Упаковати

Дакле, као што видимо, сортирање елемената низа може се лако обавити у ЈаваСцрипт-у методом сорт (), ако знамо како се правилно користи. Надам се да ће вам мој пост помоћи да разумете како на прави начин да користите методу сорт () у ЈаваСцрипт-у.

Ако желите да сазнате више о веб развоју, слободно посетите мој Иоутубе канал.

Хвала вам за читање!