Σειρά Περιεχομένων JavaScript

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

Δοκιμάστε το προσωπικά