Metod sort
Metod sort izvršava sortiranje niza
u leksikografskom poretku i vraća već
izmenjeni niz. Kao opcioni parametar
može se navesti sopstvena funkcija za sortiranje.
Sintaksa
niz.sort([funkcija]);
Primer
Hajde da sortiramo niz:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Rezultat izvršavanja koda:
['a', 'b', 'c', 'd']
Primer
Hajde da sortiramo niz sa brojevima:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Rezultat izvršavanja koda:
[1, 2, 4, 7]
Primer
Hajde da dodamo u niz brojeve i sortiramo ga:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Kao rezultat izvršavanja koda videćemo da se brojevi ne raspoređuju u rastućem poretku, već u leksikografskom poretku, odnosno brojevi se međusobno porede kao stringovi. Pritom se poređenje vrši po svakom karakteru, da li je kod prvog karaktera veći od koda susednog itd. Rezultat:
[1, 111, 123, 2, 4, 7]
Primer
Sada hajde da sortiramo niz
pomoću funkcije, u kojoj ćemo navesti uslov -
ako je prvi parametar veći od drugog, onda ga premeštamo
(za to u return stavljamo bilo koji pozitivan broj).
U suprotnom slučaju premeštanje nije potrebno i navodimo
0 ili bilo koji negativan broj:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Rezultat izvršavanja koda:
[1, 2, 4, 7, 111, 123]
Primer
Hajde da za praktičnost skratimo kod u našoj funkciji iz prethodnog primera:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Rezultat izvršavanja koda:
[1, 2, 4, 7, 111, 123]
Primer
A sada pomoću funkcije sortirajmo niz u opadajućem poretku:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Rezultat izvršavanja koda:
[123, 111, 7, 4, 2, 1]
Primer
Hajde da sortiramo niz objekata
po ključu 'one' u rastućem poretku:
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);
Rezultat izvršavanja koda:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Primer
A sada hajde da sortiramo niz objekata
po ključu '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);
Rezultat izvršavanja koda:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Primer
Hajde da proverimo da li se niz promenio nakon
primenjivanja metoda sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Rezultat izvršavanja koda:
['a', 'b', 'c', 'd']
Pogledajte takođe
-
metod
filter,
koji omogućava filtriranje elemenata niza