Metoda sort
Metoda sort wykonuje sortowanie tablicy
w porządku leksykograficznym i zwraca już
zmodyfikowaną tablicę. Jako opcjonalny parametr
można podać własną funkcję do sortowania.
Składnia
tablica.sort([funkcja]);
Przykład
Posortujmy tablicę:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Wynik wykonania kodu:
['a', 'b', 'c', 'd']
Przykład
Posortujmy tablicę z liczbami:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Wynik wykonania kodu:
[1, 2, 4, 7]
Przykład
Dodajmy do tablicy liczby i posortujmy ją:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
W wyniku wykonania kodu zobaczymy, że liczby są ułożone nie w porządku rosnącym, ale w porządku leksykograficznym, czyli liczby są porównywane między sobą jak ciągi znaków. Przy tym porównanie odbywa się po każdym znaku, czy kod pierwszego znaku jest większy niż kod sąsiedniego itd. Wynik:
[1, 111, 123, 2, 4, 7]
Przykład
Teraz posortujmy tablicę
za pomocą funkcji, w której określimy warunek -
jeśli pierwszy parametr jest większy niż drugi, to go przestawiamy
(w tym celu w return dowolna liczba dodatnia).
W przeciwnym przypadku przestawienie nie jest wymagane i podajemy
0 lub dowolną liczbę ujemną:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Wynik wykonania kodu:
[1, 2, 4, 7, 111, 123]
Przykład
Dla wygody skróćmy kod w naszej funkcji z poprzedniego przykładu:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Wynik wykonania kodu:
[1, 2, 4, 7, 111, 123]
Przykład
A teraz za pomocą funkcji posortujmy tablicę w porządku malejącym:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Wynik wykonania kodu:
[123, 111, 7, 4, 2, 1]
Przykład
Posortujmy tablicę obiektów
według klucza 'one' w porządku rosnącym:
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);
Wynik wykonania kodu:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Przykład
A teraz posortujmy tablicę obiektów
według klucza '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);
Wynik wykonania kodu:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Przykład
Sprawdźmy, czy tablica zmieniła się po
zastosowaniu metody sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Wynik wykonania kodu:
['a', 'b', 'c', 'd']
Zobacz też
-
metoda
filter,
która pozwala filtrować elementy tablicy