Метад 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]

Прыклад

Цяпер давайце адсартуем масіў з дапамогай функцыі, у якой пропiшем умову - калі першы параметр большы за другі, то яго перастаўляем (для гэтага ў 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,
    які дазваляе фільтраваць элементы масіва