Metode sort
Metode sort veic masīva kārtošanu
leksikogrāfiskā secībā un atgriež jau
izmainīto masīvu. Kā neobligātu parametru
var norādīt savu kārtošanas funkciju.
Sintakse
masīvs.sort([funkcija]);
Piemērs
Kārtosim masīvu:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Koda izpildes rezultāts:
['a', 'b', 'c', 'd']
Piemērs
Kārtosim masīvu ar skaitļiem:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Koda izpildes rezultāts:
[1, 2, 4, 7]
Piemērs
Pievienosim masīvam skaitļus un sakārtosim to:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Koda izpildes rezultātā mēs redzēsim, ka skaitļi atrodas ne augošā secībā, bet leksikogrāfiskā secībā, t.i., skaitļi tiek salīdzināti viens ar otru kā virknes. Tajā pašā laikā salīdzināšana notiek pa katru simbolu, vai pirmā simbola kods ir lielāks par blakus esošā simbola kodu utt. Rezultāts:
[1, 111, 123, 2, 4, 7]
Piemērs
Tagad sakārtosim masīvu
ar funkcijas palīdzību, kurā mēs norādīsim nosacījumu -
ja pirmais parametrs ir lielāks par otro, tad to pārkārtojam
(šim nolūkam return jebkuru pozitīvu skaitli).
Pretējā gadījumā pārkārtošana nav nepieciešama un mēs norādām
0 vai jebkuru negatīvu skaitli:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Koda izpildes rezultāts:
[1, 2, 4, 7, 111, 123]
Piemērs
Ērtības labad saīsināsim kodu mūsu funkcijā no iepriekšējā piemēra:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Koda izpildes rezultāts:
[1, 2, 4, 7, 111, 123]
Piemērs
Un tagad ar funkcijas palīdzību sakārtosim masīvu dilstošā secībā:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Koda izpildes rezultāts:
[123, 111, 7, 4, 2, 1]
Piemērs
Kārtosim objektu masīvu
pēc atslēgas 'one' augošā secībā:
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);
Koda izpildes rezultāts:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Piemērs
Un tagad kārtosim objektu masīvu
pēc atslēgas '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);
Koda izpildes rezultāts:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Piemērs
Pārbaudīsim, vai masīvs ir mainījies pēc
metodes sort lietošanas:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Koda izpildes rezultāts:
['a', 'b', 'c', 'd']
Skatiet arī
-
metode
filter,
kas ļauj filtrēt masīva elementus