从 Javascript 对象中选择随机属性 [英] Pick random property from a Javascript object

查看:25
本文介绍了从 Javascript 对象中选择随机属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设你有一个 Javascript 对象,如 {'cat':'meow','dog':'woof' ...}有没有比我想出的这种冗长的方法更简洁的方法来从对象中选择一个随机属性:

Suppose you have a Javascript object like {'cat':'meow','dog':'woof' ...} Is there a more concise way to pick a random property from the object than this long winded way I came up with:

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

推荐答案

选择的答案会很好用.但是,这个答案会运行得更快:

The chosen answer will work well. However, this answer will run faster:

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

这篇关于从 Javascript 对象中选择随机属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆