使用javascript从关联数组中选择随机值?

发布于 2024-11-19 17:27:39 字数 707 浏览 0 评论 0原文

可能的重复:
JavaScript:从数组中获取随机值
如何随机选择对象密钥?

假设我们有一个像这样的数组:

var MrArray = new Array(5);
MrArray['one']='oneValue';
MrArray['two']='twoValue';
MrArray['three']='threeValue';
MrArray['four']='fourValue';
MrArray['five']='fiveValue';

好吗? 数组是关联的。 我们有字符串键和字符串值。 现在!我如何从中选择一个随机值? 编辑:我想这样使用:

<A href="Array value Here">Array Key Here</a>

问候 山姆

Possible Duplicates:
JavaScript: Getting random value from an array
How can I choose an object key at random?

suppose we have an array like this:

var MrArray = new Array(5);
MrArray['one']='oneValue';
MrArray['two']='twoValue';
MrArray['three']='threeValue';
MrArray['four']='fourValue';
MrArray['five']='fiveValue';

ok?
the Array is associated.
and we have string key and string value.
now! how can i pick a random value from that?
Edit:i want to use like this:

<A href="Array value Here">Array Key Here</a>

Regards
Sam

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

荒人说梦 2024-11-26 17:27:39

使用此处描述的方法我们可以创建以下函数:

function randomKey(obj) {
    var ret;
    var c = 0;
    for (var key in obj)
        if (Math.random() < 1/++c)
           ret = key;
    return ret;
}

它返回一个随机密钥,因此要从 MrArray 获取随机值,请执行以下操作:

var value = MrArray[randomKey(MrArray)];

jsPerf基准 比较这个答案和另一个答案的速度。

Using the method described here we can create the following function:

function randomKey(obj) {
    var ret;
    var c = 0;
    for (var key in obj)
        if (Math.random() < 1/++c)
           ret = key;
    return ret;
}

It returns a random key, so to get a random value from MrArray, do this:

var value = MrArray[randomKey(MrArray)];

jsPerf benchmark comparing the speed of this and the other answer.

疯狂的代价 2024-11-26 17:27:39

这里:

function fetch_random(obj) {
    var temp_key, keys = [];
    for(temp_key in obj) {
       if(obj.hasOwnProperty(temp_key)) {
           keys.push(temp_key);
       }
    }
    return obj[keys[Math.floor(Math.random() * keys.length)]];
}

Src:如何随机选择对象键?

Here:

function fetch_random(obj) {
    var temp_key, keys = [];
    for(temp_key in obj) {
       if(obj.hasOwnProperty(temp_key)) {
           keys.push(temp_key);
       }
    }
    return obj[keys[Math.floor(Math.random() * keys.length)]];
}

Src: How can I choose an object key at random?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文