Heim > Web-Frontend > js-Tutorial > Wie kann ich ein Array in JavaScript mischen?

Wie kann ich ein Array in JavaScript mischen?

Susan Sarandon
Freigeben: 2024-12-19 12:07:27
Original
319 Leute haben es durchsucht

How Can I Shuffle an Array in JavaScript?

Mischen von Arrays in JavaScript

In JavaScript bezieht sich das Mischen eines Arrays auf das Neuanordnen seiner Elemente in einer zufälligen Reihenfolge.

Fisher-Yates-Shuffle-Algorithmus

Die moderne Version des Fisher-Yates-Shuffle-Algorithmus kann implementiert werden als:

/**
 * Shuffles array in place.
 * @param {Array} a items An array containing the items.
 */
function shuffle(a) {
    var j, x, i;
    for (i = a.length - 1; i > 0; i--) {
        j = Math.floor(Math.random() * (i + 1));
        x = a[i];
        a[i] = a[j];
        a[j] = x;
    }
    return a;
}
Nach dem Login kopieren

ES6-Version

Die ES6-Version des Algorithmus kann geschrieben werden als:

/**
 * Shuffles array in place. ES6 version
 * @param {Array} a items An array containing the items.
 */
function shuffle(a) {
    for (let i = a.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [a[i], a[j]] = [a[j], a[i]];
    }
    return a;
}
Nach dem Login kopieren

Prototyp-Methode

Um das zu erstellen Die Funktion ist vielseitiger und kann als Prototypmethode für Arrays implementiert werden:

Object.defineProperty(Array.prototype, 'shuffle', {
    value: function() {
        for (let i = this.length - 1; i > 0; i--) {
            const j = Math.floor(Math.random() * (i + 1));
            [this[i], this[j]] = [this[j], this[i]];
        }
        return this;
    }
});
Nach dem Login kopieren

Verwendung Beispiel

Das folgende Beispiel zeigt, wie die Shuffle-Funktion verwendet wird:

const myArray = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
shuffle(myArray);
console.log(myArray); // Logs a shuffled array
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich ein Array in JavaScript mischen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage