Метод sort

Метод sort врши сортирање низа у лексикографском редоследу и враћа већ измењени низ. Као опциони параметар може се навести сопствена функција за сортирање.

Синтакса

javascriptниз.sort([функција]);

Пример

Хајде да сортирамо низ:

javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());

Резултат извршавања кода:

javascript['a', 'b', 'c', 'd']

Пример

Хајде да сортирамо низ са бројевима:

javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());

Резултат извршавања кода:

javascript[1, 2, 4, 7]

Пример

Хајде да додамо у низ бројеве и сортирамо га:

javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());

Као резултат извршавања кода видећемо да се бројеви не распоређују по растућем редоследу, већ у лексикографском редоследу, тј. бројеви се међусобно пореде као стрингови. При томе, поређење иде по сваком симболу, да ли је већи код првог симбола од кода суседног итд. Резултат:

javascript[1, 111, 123, 2, 4, 7]

Пример

Сада хајде да сортирамо низ помоћу функције, у којој ћемо написати услов - ако је први параметар већи од другог, онда га заменимо (за то у return ставимо било који позитиван број). У супротном случају замена није потребна и наводимо 0 или било који негативан број:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  if (a > b) {
    return 1;
  } else {
    return -1;
  }
});

console.log(arr);

Резултат извршавања кода:

javascript[1, 2, 4, 7, 111, 123]

Пример

Хајде да скратимо код у нашој функцији из претходног примера:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return a - b;
});

console.log(arr);

Резултат извршавања кода:

javascript[1, 2, 4, 7, 111, 123]

Пример

А сада помоћу функције да сортирамо низ у опадајућем редоследу:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return b - a;
});

console.log(arr);

Резултат извршавања кода:

javascript[123, 111, 7, 4, 2, 1]

Пример

Хајде да сортирамо низ објеката по кључу 'one' у растућем редоследу:

javascriptlet arr = [
  {one: 1, two: 2},
  {one: 7, two: 1},
  {one: 3, two: 3}
];
arr.sort(function(a, b) {
  return a.one - b.one;
});

console.log(arr);

Резултат извршавања кода:

javascript[
  {one: 1, two: 2},
  {one: 3, two: 3},
  {one: 7, two: 1}
]

Пример

А сада хајде да сортирамо низ објеката по кључу 'two':

javascriptlet arr = [
  {one: 1, two: 2},
  {one: 7, two: 1},
  {one: 3, two: 3}
];
arr.sort(function(a, b) {
  return a.two - b.two;
});

console.log(arr);

Резултат извршавања кода:

javascript[
  {one: 7, two: 1},
  {one: 1, two: 2},
  {one: 3, two: 3}
]

Пример

Хајде да проверимо да ли се низ променио након употребе методе sort:

javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();

console.log(arr);

Резултат извршавања кода:

javascript['a', 'b', 'c', 'd']

Погледајте такође

  • метод filter,
    који омогућава филтрирање елемената низа