Μέθοδος sort

Η μέθοδος sort εκτελεί ταξινόμηση πίνακα σε λεξικογραφική σειρά και επιστρέφει τον ήδη τροποποιημένο πίνακα. Ως προαιρετική παράμετρο μπορεί να καθοριστεί μια δικιά σας συνάρτηση για ταξινόμηση.

Σύνταξη

javascriptπίνακας.sort([συνάρτηση]);

Παράδειγμα

Ας ταξινομήσουμε έναν πίνακα:

javascriptlet arr = ['d', 'b', 'a', 'c'];
console.log(arr.sort());

Αποτέλεσμα εκτέλεσης κώδικα:

javascript['a', 'b', 'c', 'd']

Παράδειγμα

Ας ταξινομήσουμε έναν πίνακα με αριθμούς:

javascriptlet arr = [4, 1, 7, 2];
console.log(arr.sort());

Αποτέλεσμα εκτέλεσης κώδικα:

javascript[1, 2, 4, 7]

Παράδειγμα

Ας προσθέσουμε αριθμούς στον πίνακα και ας τον ταξινομήσουμε:

javascriptlet arr = [1, 123, 2, 4, 111, 7];
console.log(arr.sort());

Στο αποτέλεσμα εκτέλεσης κώδικα βλέπουμε ότι οι αριθμοί δεν τοποθετούνται σε αύξουσα σειρά, αλλά σε λεξικογραφική σειρά, δηλαδή οι αριθμοί συγκρίνονται μεταξύ τους ως συμβολοσειρές. Στην περίπτωση αυτή, η σύγκριση γίνεται ανά χαρακτήρα, εάν ο κώδικας του πρώτου χαρακτήρα είναι μεγαλύτερος από τον κώδικα του γειτονικού κ.λπ. Αποτέλεσμα:

javascript[1, 111, 123, 2, 4, 7]

Παράδειγμα

Τώρα ας ταξινομήσουμε τον πίνακα χρησιμοποιώντας μια συνάρτηση, στην οποία θα ορίσουμε την συνθήκη - εάν η πρώτη παράμετρος είναι μεγαλύτερη από τη δεύτερη, τότε την αναδιατάσσουμε (για αυτό στο return οποιονδήποτε θετικό αριθμό). Στην αντίθετη περίπτωση, η αναδιάταξη δεν απαιτείται και ορίζουμε 0 ή οποιονδήποτε αρνητικό αριθμό:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  if (a > b) {
    return 1;
  } else {
    return -1;
  }
});

console.log(arr);

Αποτέλεσμα εκτέλεσης κώδικα:

javascript[1, 2, 4, 7, 111, 123]

Παράδειγμα

Ας συντομεύσουμε για ευκολία τον κώδικα στη συνάρτησή μας από το προηγούμενο παράδειγμα:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return a - b;
});

console.log(arr);

Αποτέλεσμα εκτέλεσης κώδικα:

javascript[1, 2, 4, 7, 111, 123]

Παράδειγμα

Και τώρα χρησιμοποιώντας συνάρτηση ας ταξινομήσουμε τον πίνακα σε φθίνουσα σειρά:

javascriptlet arr = [1, 123, 2, 4, 111, 7];

arr.sort(function(a, b) {
  return b - a;
});

console.log(arr);

Αποτέλεσμα εκτέλεσης κώδικα:

javascript[123, 111, 7, 4, 2, 1]

Παράδειγμα

Ας ταξινομήσουμε έναν πίνακα αντικειμένων βάσει του κλειδιού 'one' σε αύξουσα σειρά:

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);

Αποτέλεσμα εκτέλεσης κώδικα:

javascript[
  {one: 1, two: 2},
  {one: 3, two: 3},
  {one: 7, two: 1}
]

Παράδειγμα

Και τώρα ας ταξινομήσουμε τον πίνακα αντικειμένων βάσει του κλειδιού '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);

Αποτέλεσμα εκτέλεσης κώδικα:

javascript[
  {one: 7, two: 1},
  {one: 1, two: 2},
  {one: 3, two: 3}
]

Παράδειγμα

Ας ελέγξουμε εάν άλλαξε ο πίνακας μετά την εφαρμογή της μεθόδου sort:

javascriptlet arr = ['b', 'a', 'd', 'c'];
let res = arr.sort();

console.log(arr);

Αποτέλεσμα εκτέλεσης κώδικα:

javascript['a', 'b', 'c', 'd']

Δείτε επίσης

  • η μέθοδος filter,
    που επιτρέπει το φιλτράρισμα στοιχείων πίνακα