Μέθοδος sort
Η μέθοδος sort εκτελεί ταξινόμηση πίνακα
σε λεξικογραφική σειρά και επιστρέφει τον ήδη
τροποποιημένο πίνακα. Ως προαιρετική παράμετρο
μπορεί να καθοριστεί μια δικιά σας συνάρτηση για ταξινόμηση.
Σύνταξη
πίνακας.sort([συνάρτηση]);
Παράδειγμα
Ας ταξινομήσουμε έναν πίνακα:
let arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());
Αποτέλεσμα εκτέλεσης κώδικα:
['a', 'b', 'c', 'd']
Παράδειγμα
Ας ταξινομήσουμε έναν πίνακα με αριθμούς:
let arr = [4, 1, 7, 2];
console.log(arr.sort());
Αποτέλεσμα εκτέλεσης κώδικα:
[1, 2, 4, 7]
Παράδειγμα
Ας προσθέσουμε αριθμούς στον πίνακα και ας τον ταξινομήσουμε:
let arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());
Στο αποτέλεσμα εκτέλεσης κώδικα βλέπουμε ότι οι αριθμοί δεν τοποθετούνται σε αύξουσα σειρά, αλλά σε λεξικογραφική σειρά, δηλαδή οι αριθμοί συγκρίνονται μεταξύ τους ως συμβολοσειρές. Στην περίπτωση αυτή, η σύγκριση γίνεται ανά χαρακτήρα, εάν ο κώδικας του πρώτου χαρακτήρα είναι μεγαλύτερος από τον κώδικα του γειτονικού κ.λπ. Αποτέλεσμα:
[1, 111, 123, 2, 4, 7]
Παράδειγμα
Τώρα ας ταξινομήσουμε τον πίνακα
χρησιμοποιώντας μια συνάρτηση, στην οποία θα ορίσουμε την συνθήκη -
εάν η πρώτη παράμετρος είναι μεγαλύτερη από τη δεύτερη, τότε την αναδιατάσσουμε
(για αυτό στο return οποιονδήποτε θετικό αριθμό).
Στην αντίθετη περίπτωση, η αναδιάταξη δεν απαιτείται και ορίζουμε
0 ή οποιονδήποτε αρνητικό αριθμό:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
if (a > b) {
return 1;
} else {
return -1;
}
});
console.log(arr);
Αποτέλεσμα εκτέλεσης κώδικα:
[1, 2, 4, 7, 111, 123]
Παράδειγμα
Ας συντομεύσουμε για ευκολία τον κώδικα στη συνάρτησή μας από το προηγούμενο παράδειγμα:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
Αποτέλεσμα εκτέλεσης κώδικα:
[1, 2, 4, 7, 111, 123]
Παράδειγμα
Και τώρα χρησιμοποιώντας συνάρτηση ας ταξινομήσουμε τον πίνακα σε φθίνουσα σειρά:
let arr = [1, 123, 2, 4, 111, 7];
arr.sort(function(a, b) {
return b - a;
});
console.log(arr);
Αποτέλεσμα εκτέλεσης κώδικα:
[123, 111, 7, 4, 2, 1]
Παράδειγμα
Ας ταξινομήσουμε έναν πίνακα αντικειμένων
βάσει του κλειδιού 'one' σε αύξουσα σειρά:
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);
Αποτέλεσμα εκτέλεσης κώδικα:
[
{one: 1, two: 2},
{one: 3, two: 3},
{one: 7, two: 1}
]
Παράδειγμα
Και τώρα ας ταξινομήσουμε τον πίνακα αντικειμένων
βάσει του κλειδιού '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);
Αποτέλεσμα εκτέλεσης κώδικα:
[
{one: 7, two: 1},
{one: 1, two: 2},
{one: 3, two: 3}
]
Παράδειγμα
Ας ελέγξουμε εάν άλλαξε ο πίνακας μετά
την εφαρμογή της μεθόδου sort:
let arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();
console.log(arr);
Αποτέλεσμα εκτέλεσης κώδικα:
['a', 'b', 'c', 'd']
Δείτε επίσης
-
η μέθοδος
filter,
που επιτρέπει το φιλτράρισμα στοιχείων πίνακα