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

Wie kann ich ein Array in JavaScript mischen?

Susan Sarandon
Susan SarandonOriginal
2024-12-19 12:07:27309Durchsuche

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

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

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

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

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!

Stellungnahme:
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