A sort metódus
A sort metódus lexikografikus sorrendbe rendezi a tömböt
és visszaadja a már módosított tömböt. Opcionális paraméterként
saját rendezőfüggvény is megadható.
Szintaxis
tömb.sort([függvény]);
Példa
Rendezzünk egy tömböt:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
A kód végrehajtásának eredménye:
['a', 'b', 'c', 'd']
Példa
Rendezzünk egy számokat tartalmazó tömböt:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
A kód végrehajtásának eredménye:
[1, 2, 4, 7]
Példa
Adjunk hozzá számokat a tömbhöz és rendezzük azt:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
A kód végrehajtásának eredményeképpen láthatjuk, hogy a számok nem növekvő sorrendben, hanem lexikografikus sorrendben helyezkednek el, azaz a számok egymással karakterláncként hasonlítódnak össze. Ebben az esetben az összehasonlítás karakterenként történik, hogy nagyobb-e az első karakter kódja, mint a szomszédosé, stb. Az eredmény:
[1, 111, 123, 2, 4, 7]
Példa
Most rendezzünk egy tömböt
egy olyan függvény segítségével, amelyben feltételt írunk elő -
ha az első paraméter nagyobb, mint a második, akkor cseréljük fel őket
(ehhez a return-ban bármilyen pozitív számot adjunk meg).
Ellenkező esetben a csere nem szükséges, és
0-t vagy bármilyen negatív számot adjunk meg:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
A kód végrehajtásának eredménye:
[1, 2, 4, 7, 111, 123]
Példa
Az előző példa függvényében rövidítsük le a kódot:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
A kód végrehajtásának eredménye:
[1, 2, 4, 7, 111, 123]
Példa
Most pedig egy függvény segítségével rendezzük a tömböt csökkenő sorrendbe:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
A kód végrehajtásának eredménye:
[123, 111, 7, 4, 2, 1]
Példa
Rendezzünk objektumok egy tömbjét
a 'one' kulcs szerint növekvő sorrendbe:
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);
A kód végrehajtásának eredménye:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Példa
Most pedig rendezzük az objektumok tömbjét
a 'two' kulcs szerint:
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);
A kód végrehajtásának eredménye:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Példa
Ellenőrizzük, hogy megváltozott-e a tömb
a sort metódus alkalmazása után:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
A kód végrehajtásának eredménye:
['a', 'b', 'c', 'd']
Lásd még
-
a
filtermetódus,
amely lehetővé teszi a tömb elemeinek szűrését