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