Σειρά Περιεχομένων JavaScript
- Προηγούμενη σελίδα Αναζήτηση JS
- Επόμενη σελίδα Εκκίνηση διασφάλισης JS
sort()
Η μέθοδος είναι μια από τις πιο ισχυρές μεθόδους πίνακα.
Ταξινόμηση πίνακα
sort()
Ταξινόμηση των στοιχείων του πίνακα κατά αλφαβητική σειρά:
Παράδειγμα
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // Ταξινόμηση των στοιχείων του πίνακα fruits
Αναστροφή πίνακα
reverse()
η μέθοδος αναστροφής των στοιχείων του πίνακα.
Μπορείτε να το χρησιμοποιήσετε για να ταξινομήσετε το πίνακα σε φθίνουσα σειρά:
Παράδειγμα
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // Ταξινόμηση των στοιχείων του πίνακα fruits fruits.reverse(); // Αναστροφή της σειράς των στοιχείων
ταξινόμηση αριθμών
Προεπιλεγμέναsort()
Η συνάρτηση ταξινομεί τις τιμέςαλφαβητικάτη σειρά των τιμών.
Η συνάρτηση αυτή είναι κατάλληλη για αλφαβητικά (το "Apple" θα βρίσκεται πριν από το "Banana").
Ωστόσο, αν τα νούμερα ταξινομηθούν ως αλφαβητικά, το "25" είναι μεγαλύτερο από το "100", επειδή το "2" είναι μεγαλύτερο από το "1".
Γιαυτόsort()
Η μέθοδος μπορεί να παράγει μη σωστά αποτελέσματα όταν ταξινομεί αριθμούς.
Με τη χρήση μιαςΣυνάρτηση αναλογίαςΓια να διορθώσουμε αυτό το πρόβλημα:
Παράδειγμα
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b});
Χρησιμοποιήστε την ίδια τεχνική για να ταξινομήσετε τα στοιχεία του πίνακα σε φθίνουσα σειρά:
Παράδειγμα
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a});
Συνάρτηση αναλογίας
Ο σκοπός της συγκριτικής συνάρτησης είναι να καθορίσει μια άλλη σειρά ταξινόμησης.
Η συγκριτική συνάρτηση πρέπει να επιστρέφει μια αρνητική, μηδενική ή θετική τιμή, ανάλογα με τους παραμέτρους:
function(a, b){return a-b}
Όταν sort()
Όταν η συνάρτηση συγκρίνει δύο τιμές, θα στείλει τις τιμές στη συγκριτική συνάρτηση και θα ταξινομήσει τις τιμές ανάλογα με την επιστροφή που θα γίνει από τη συνάρτηση:
Παράδειγμα:
Όταν συγκρίνεται το 40 με το 100,sort()
Η μέθοδος καλεί τη συγκριτική συνάρτηση function(40,100).
Η συνάρτηση υπολογίζει το 40-100 και επιστρέφει το -60 (άρνητο αξία).
Η συνάρτηση ταξινόμησης θα ταξινομήσει το 40 ως μικρότερο από το 100.
Μπορείτε να χρησιμοποιήσετε τον παρακάτω κώδικα για να δοκιμάσετε τη σειρά των αριθμών και των γραμμάτων:
<button onclick="myFunction1()">με αλφαβητική σειρά</button> <button onclick="myFunction2()">με αριθμητική σειρά</button> <p id="demo"></p> <script> var points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = points; function myFunction1() { points.sort(); document.getElementById("demo").innerHTML = points; } function myFunction2() { points.sort(function(a, b){return a - b}); document.getElementById("demo").innerHTML = points; } </script>
με τυχαία σειρά κατατάξης του πίνακα
Παράδειγμα
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return 0.5 - Math.random()});
Εύρεση του υψηλότερου (ή χαμηλότερου) αριθμού του πίνακα
Το JavaScript δεν παρέχει ενσωματωμένες συναρτήσεις για την εύρεση του μεγαλύτερου ή του μικρότερου αριθμού ενός πίνακα.
Μετά την σειρά κατατάξης του πίνακα, μπορείτε να χρησιμοποιήσετε τον δείκτη για να πάρετε τον υψηλότερο ή χαμηλότερο αριθμό.
μεγιστοποιητική σειρά κατατάξης:
Παράδειγμα
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); // τώρα points[0] περιέχει τον χαμηλότερο αριθμό // και points[points.length-1] περιέχει τον υψηλότερο αριθμό
μεγιστοποιητική σειρά κατατάξης:
Παράδειγμα
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // τώρα points[0] περιέχει τον υψηλότερο αριθμό // και points[points.length-1] περιέχει τον χαμηλότερο αριθμό
Αν χρειάζεστε απλώς να βρείτε τον υψηλότερο ή χαμηλότερο αριθμό, η σειρά κατατάξης του πίνακα είναι ένας τρόπος που είναι πολύ αργός.
για να χρησιμοποιήσετε Math.max() στο πίνακα
Μπορείτε να χρησιμοποιήσετε Math.max.apply
για να βρείτε τον υψηλότερο αριθμό του πίνακα:
Παράδειγμα
function myArrayMax(arr) { return Math.max.apply(null, arr); }
Math.max.apply([1, 2, 3])
ίσως Math.max(1, 2, 3)
.
για να χρησιμοποιήσετε Math.min() στο πίνακα
Μπορείτε να χρησιμοποιήσετε Math.min.apply
για να βρείτε τον χαμηλότερο αριθμό του πίνακα:
Παράδειγμα
function myArrayMin(arr) { return Math.min.apply(null, arr); }
Math.min.apply([1, 2, 3])
ίσως Math.min(1, 2, 3)
.
Τα μεθόδους μου Min / Max JavaScript
Ο ταχύτερος τρόπος λύσης είναι η χρήση του "συμπεριλαμβανομένου" τρόπου.
Η συνάρτηση αυτή περιηγείται στο πίνακα, συγκρίνει τον εύρητο υψηλότερο αριθμό με κάθε τιμή:
παράδειγμα (εύρεση του μέγιστου)
function myArrayMax(arr) { var len = arr.length var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; }
Η συνάρτηση αυτή περιηγείται στο πίνακα, συγκρίνει τον εύρητο χαμηλότερο αριθμό με κάθε τιμή:
παράδειγμα (εύρεση του ελάχιστου)
function myArrayMin(arr) { var len = arr.length var min = Επείσοδος; while (len--) { αν (arr[len] < min) { min = arr[len]; } } return min; }
Ταξινόμηση πινάκων αντικειμένων
Τα πίνακες JavaScript συχνά περιέχουν αντικείμενα:
Παράδειγμα
var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];
Αν και τα αντικείμενα έχουν διαφορετικούς τύπους δεδομένων ιδιοτήτωνsort()
Η μέθοδος παραμένει χρήσιμη για την ταξινόμηση των πινάκων.
Η μέθοδος μπορεί να χρησιμοποιηθεί και για την ταξινόμηση των πινάκων.
Παράδειγμα
Η λύση είναι η χρήση συνάρτησης σύγκρισης για την σύγκριση τιμών ιδιοτήτων:
Η σύγκριση χαρακτηριστικών αλφαβητικούς θα είναι λίγο πιο περίπλοκη:
Παράδειγμα
cars.sort(function(a, b){ var x = a.type.toLowerCase(); var y = b.type.toLowerCase(); αν (x < y) {επιστρέφει -1;} αν (x > y) {επιστρέφει 1;} επιστρέφει 0; });
- Προηγούμενη σελίδα Αναζήτηση JS
- Επόμενη σελίδα Εκκίνηση διασφάλισης JS