以更高的效率检索随机对象属性
假设您在 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中文网其他相关文章!