Методот 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,
кој овозможува филтрирање на елементите од низата