Heim > Web-Frontend > js-Tutorial > Wie kann ich eine zufällige Eigenschaft effizient von einem JavaScript-Objekt abrufen?

Wie kann ich eine zufällige Eigenschaft effizient von einem JavaScript-Objekt abrufen?

Barbara Streisand
Freigeben: 2024-10-26 01:07:02
Original
912 Leute haben es durchsucht

How to Efficiently Retrieve a Random Property from a JavaScript Object?

Eine zufällige Objekteigenschaft mit erhöhter Effizienz abrufen

Angenommen, Sie stoßen in Javascript auf ein Objekt, das diesem ähnelt:

{cat: 'meow', dog: 'woof', snake: 'hiss'}
Nach dem Login kopieren

Möglicherweise möchten Sie eine zufällige Eigenschaft von diesem Objekt erhalten. Anstatt eine langwierige Methode wie die folgende zu verwenden:

function pickRandomProperty(obj) {
    var prop, len = 0, randomPos, pos = 0;
    for (prop in obj) {
        if (obj.hasOwnProperty(prop)) {
            len += 1;
        }
    }
    randomPos = Math.floor(Math.random() * len);
    for (prop in obj) {
        if (obj.hasOwnProperty(prop)) {
            if (pos === randomPos) {
                return prop;
            }
            pos += 1;
        }
    }       
}
Nach dem Login kopieren

Erwägen Sie die Nutzung dieses optimierten Ansatzes:

var randomProperty = function (obj) {
    var keys = Object.keys(obj);
    return obj[keys[ keys.length * Math.random() << 0]];
};
Nach dem Login kopieren

Diese Technik optimiert Leistungsverbesserungen durch Nutzung der Object.keys()-Methode Rufen Sie ein Array der Schlüssel des Objekts ab. Anschließend wird die Länge des Arrays mit einer Zufallszahl multipliziert, um einen Index für das Array zum Abrufen des Schlüssels zu erhalten. Schließlich greift es auf die entsprechende Eigenschaft im Objekt zu, um die gewünschte Zufallseigenschaft zurückzugeben.

Das obige ist der detaillierte Inhalt vonWie kann ich eine zufällige Eigenschaft effizient von einem JavaScript-Objekt abrufen?. 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