Ταξινόμηση σειράς JavaScript - Τρόπος χρήσης μεθόδων ταξινόμησης JS (με παραδείγματα κώδικα)

Στο JavaScript, μπορούμε να ταξινομήσουμε εύκολα τα στοιχεία ενός πίνακα με μια ενσωματωμένη μέθοδο που ονομάζεται συνάρτηση sort ().

Ωστόσο, οι τύποι δεδομένων (συμβολοσειρά, αριθμός και ούτω καθεξής) μπορεί να διαφέρουν από τη μία σειρά στην άλλη. Αυτό σημαίνει ότι η χρήση μόνο της μεθόδου sort () δεν είναι πάντα η κατάλληλη λύση.

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

Σειρά από χορδές

Ας ξεκινήσουμε με χορδές:

const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];

Όταν χρησιμοποιούμε τη μέθοδο ταξινόμησης (), τα στοιχεία θα ταξινομηθούν σε αύξουσα σειρά (Α έως Ω) από προεπιλογή:

teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']

Εάν προτιμάτε να ταξινομήσετε τον πίνακα σε φθίνουσα σειρά, πρέπει να χρησιμοποιήσετε τη μέθοδο αντίστροφης () αντί:

teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']

Σειρά αριθμών

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

const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3

Γιατί η μέθοδος sort () δεν λειτουργεί για αριθμούς

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

Ας σκεφτούμε τα A = 1, B = 2 και C = 3.

const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]

Για παράδειγμα, εάν έχουμε τρεις χορδές όπως C (3), BC (23) και AB (12), η JavaScript θα τις ταξινομήσει ως AB, BC και C με αύξουσα σειρά, η οποία είναι αλφαβητικά σωστή.

Ωστόσο, το JavaScript θα ταξινομήσει τους αριθμούς (αλφαβητικά ξανά) ως 12, 23 και 3, κάτι που δεν είναι σωστό.

Λύση: Η λειτουργία σύγκρισης

Ευτυχώς, μπορούμε να υποστηρίξουμε τη μέθοδο sort () με μια βασική λειτουργία σύγκρισης που θα κάνει το κόλπο:

function(a, b) {return a - b}

Η μέθοδος ταξινόμησης, ευτυχώς, μπορεί να ταξινομήσει αρνητικές, μηδενικές και θετικές τιμές με τη σωστή σειρά. Όταν η μέθοδος sort () συγκρίνει δύο τιμές, στέλνει τις τιμές στη συνάρτηση σύγκρισης και ταξινομεί τις τιμές σύμφωνα με την επιστρεφόμενη τιμή.

  • Εάν το αποτέλεσμα είναι αρνητικό, το α ταξινομείται πριν από το β.
  • Εάν το αποτέλεσμα είναι θετικό, το b ταξινομείται πριν από το a.
  • Εάν το αποτέλεσμα είναι 0, τίποτα δεν αλλάζει.

Το μόνο που πρέπει να κάνουμε είναι να χρησιμοποιήσουμε τη λειτουργία σύγκρισης μέσα στη μέθοδο sort ():

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23

Αν θέλουμε να ταξινομήσουμε τους αριθμούς σε φθίνουσα σειρά, αυτή τη φορά πρέπει να αφαιρέσουμε τη δεύτερη παράμετρο (b) από την πρώτη (a):

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3

Τύλιξε

Έτσι, όπως μπορούμε να δούμε, η ταξινόμηση των στοιχείων ενός πίνακα μπορεί να γίνει εύκολα σε JavaScript με τη μέθοδο sort (), αν γνωρίζουμε πώς να το χρησιμοποιήσουμε σωστά. Ελπίζω ότι η ανάρτησή μου θα σας βοηθήσει να καταλάβετε πώς να χρησιμοποιήσετε τη μέθοδο sort () στο JavaScript με τον σωστό τρόπο.

Εάν θέλετε να μάθετε περισσότερα για την ανάπτυξη ιστού, μη διστάσετε να επισκεφθείτε το κανάλι μου στο Youtube.

Ευχαριστούμε που το διαβάσατε!