以更高的效率檢索隨機物件屬性
假設您在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中文網其他相關文章!