首頁  >  文章  >  web前端  >  如何有效地從 JavaScript 物件檢索隨機屬性?

如何有效地從 JavaScript 物件檢索隨機屬性?

Barbara Streisand
Barbara Streisand原創
2024-10-26 01:07:02824瀏覽

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

以更高的效率檢索隨機物件屬性

假設您在Javascript 中遇到類似以下內容的物件:

{cat: 'meow', dog: 'woof', snake: 'hiss'}

您可能想要從此物件取得隨機屬性。不要採用如下所示的冗長方法:

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

考慮利用這種最佳化方法:

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

此技術透過利用Object.keys() 方法來最佳化效能增強檢索對象的鍵的數組。隨後,它使用數組的長度乘以隨機數字來獲取數組的索引以檢索密鑰。最後,它存取物件中相應的屬性以傳回所需的隨機屬性。

以上是如何有效地從 JavaScript 物件檢索隨機屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn