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
javascriptmasīvs.sort([funkcija]);
Piemērs
Kārtosim masīvu:
javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Koda izpildes rezultāts:
javascript['a', 'b', 'c', 'd']
Piemērs
Kārtosim masīvu ar skaitļiem:
javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());
Koda izpildes rezultāts:
javascript[1, 2, 4, 7]
Piemērs
Pievienosim masīvam skaitļus un sakārtosim to:
javascriptlet 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:
javascript[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:
javascriptlet 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:
javascript[1, 2, 4, 7, 111, 123]
Piemērs
Ērtības labad saīsināsim kodu mūsu funkcijā no iepriekšējā piemēra:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Koda izpildes rezultāts:
javascript[1, 2, 4, 7, 111, 123]
Piemērs
Un tagad ar funkcijas palīdzību sakārtosim masīvu dilstošā secībā:
javascriptlet arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Koda izpildes rezultāts:
javascript[123, 111, 7, 4, 2, 1]
Piemērs
Kārtosim objektu masīvu
pēc atslēgas 'one' augošā secībā:
javascriptlet 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:
javascript[
{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':
javascriptlet 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:
javascript[
{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:
javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Koda izpildes rezultāts:
javascript['a', 'b', 'c', 'd']
Skatiet arī
-
metode
filter,
kas ļauj filtrēt masīva elementus