Metoda sort
Metoda sort realizează sortarea unui array
în ordine lexicografică și returnează array-ul
deja modificat. Ca parametru opțional
se poate specifica o funcție personalizată pentru sortare.
Sintaxă
array.sort([funcție]);
Exemplu
Să sortăm un array:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Rezultatul executării codului:
['a', 'b', 'c', 'd']
Exemplu
Să sortăm un array cu numere:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Rezultatul executării codului:
[1, 2, 4, 7]
Exemplu
Să adăugăm în array mai multe numere și să-l sortăm:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
În urma executării codului vom vedea că numerele nu sunt aranjate în ordine crescătoare, ci în ordine lexicografică, adică numerele sunt comparate între ele ca șiruri de caractere. În acest caz, comparația se face pentru fiecare caracter, dacă este mai mare codul primului caracter decât codul vecinului, etc. Rezultatul:
[1, 111, 123, 2, 4, 7]
Exemplu
Acum să sortăm array-ul
cu ajutorul unei funcții, în care vom specifica condiția -
dacă primul parametru este mai mare decât al doilea, atunci le schimbăm ordinea
(pentru aceasta în return orice număr pozitiv).
În caz contrar, schimbarea ordinii nu este necesară și specificăm
0 sau orice număr negativ:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Rezultatul executării codului:
[1, 2, 4, 7, 111, 123]
Exemplu
Să scurtăm codul din funcția noastră din exemplul anterior:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Rezultatul executării codului:
[1, 2, 4, 7, 111, 123]
Exemplu
Iar acum cu ajutorul funcției să sortăm array-ul în ordine descrescătoare:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Rezultatul executării codului:
[123, 111, 7, 4, 2, 1]
Exemplu
Să sortăm un array de obiecte
după cheia 'one' în ordine crescătoare:
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);
Rezultatul executării codului:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Exemplu
Iar acum să sortăm array-ul de obiecte
după cheia '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);
Rezultatul executării codului:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Exemplu
Să verificăm dacă array-ul s-a modificat după
aplicarea metodei sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Rezultatul executării codului:
['a', 'b', 'c', 'd']
Vezi și
-
metoda
filter,
care permite filtrarea elementelor array-ului