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'}
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; } } }
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]]; };
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!