Методот sort
Методот sort ја извршува сортирањето на низата
по лексикографски редослед и го враќа веќе
променетиот масив. Како незадолжителен параметар
може да се наведе сопствена функција за сортирање.
Синтакса
низа.sort([функција]);
Пример
Ајде да сортираме низа:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Резултат од извршувањето на кодот:
['a', 'b', 'c', 'd']
Пример
Ајде да сортираме низа со броеви:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Резултат од извршувањето на кодот:
[1, 2, 4, 7]
Пример
Ајде да додадеме броеви во низата и да ја сортираме:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Како резултат на извршувањето на кодот ќе видиме дека броевите не се распоредени по растечки редослед, туку по лексикографски редослед, т.е. броевите се споредуваат меѓусебе како стрингови. При тоа, споредувањето се врши по секој знак, дали е поголем кодот на првиот знак од кодот на соседниот итн. Резултат:
[1, 111, 123, 2, 4, 7]
Пример
Сега ајде да ја сортираме низата
со помош на функција, во која ќе наведеме услов -
ако првиот параметар е поголем од вториот, тогаш го преместуваме
(за ова во return било кој позитивен број).
Во спротивно, преместувањето не е потребно и ние укажуваме
0 или било кој негативен број:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Резултат од извршувањето на кодот:
[1, 2, 4, 7, 111, 123]
Пример
Ајде за погодност да го скратиме кодот во нашата функција од претходниот пример:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Резултат од извршувањето на кодот:
[1, 2, 4, 7, 111, 123]
Пример
А сега со помош на функција да ја сортираме низата по опаѓачки редослед:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Резултат од извршувањето на кодот:
[123, 111, 7, 4, 2, 1]
Пример
Ајде да сортираме низа од објекти
по клучот 'one' по растечки редослед:
let 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);
Резултат од извршувањето на кодот:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Пример
А сега ајде да сортираме низа од објекти
по клучот 'two':
let 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);
Резултат од извршувањето на кодот:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Пример
Ајде да провериме дали низата се променила по
примената на методот sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Резултат од извршувањето на кодот:
['a', 'b', 'c', 'd']
Поврзано
-
методот
filter,
кој овозможува филтрирање на елементите од низата