Metodas sort
Metodas sort atlieka masyvo rūšiavimą
leksikografine tvarka ir grąžina jau
pakeistą masyvą. Kaip neprivalomą parametrą
galima nurodyti savo funkciją rūšiavimui.
Sintaksė
masyvas.sort([funkcija]);
Pavyzdys
Surūšiuokime masyvą:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Kodo vykdymo rezultatas:
['a', 'b', 'c', 'd']
Pavyzdys
Surūšiuokime masyvą su skaičiais:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Kodo vykdymo rezultatas:
[1, 2, 4, 7]
Pavyzdys
Pridėkime į masyvą skaičius ir surūšiuokime jį:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Kodo vykdymo rezultate pamatysime, kad skaičiai išsidėstę ne didėjimo tvarka, o leksikografine tvarka, t.y. skaičiai tarpusavyje lyginami kaip eilutės. Tuo pačiu lyginama pagal kiekvieną simbolį, ar pirmojo simbolio kodas didesnis nei kaimyninio ir t.t. Rezultatas:
[1, 111, 123, 2, 4, 7]
Pavyzdys
Dabar surūšiuokime masyvą
naudodami funkciją, kurioje aprašysime sąlygą -
jei pirmasis parametras didesnis už antrąjį, tai jį perstatome
(tam return bet koks teigiamas skaičius).
Atvirkščiu atveju perstatymas nereikalingas ir mes nurodome
0 arba bet kurį neigiamą skaičių:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Kodo vykdymo rezultatas:
[1, 2, 4, 7, 111, 123]
Pavyzdys
Patogumui sutrumpinkime kodą mūsų funkcijoje iš ankstesnio pavyzdžio:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Kodo vykdymo rezultatas:
[1, 2, 4, 7, 111, 123]
Pavyzdys
O dabar naudodami funkciją surūšiuokime masyvą mažėjimo tvarka:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Kodo vykdymo rezultatas:
[123, 111, 7, 4, 2, 1]
Pavyzdys
Surūšiuokime objektų masyvą
pagal raktą 'one' didėjimo tvarka:
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);
Kodo vykdymo rezultatas:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Pavyzdys
O dabar surūšiuokime objektų masyvą
pagal raktą '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);
Kodo vykdymo rezultatas:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Pavyzdys
Patikrinkime, ar pasikeitė masyvas po
metodo sort taikymo:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Kodo vykdymo rezultatas:
['a', 'b', 'c', 'd']
Taip pat žiūrėkite
-
metodas
filter,
kuris leidžia filtruoti masyvo elementus