可能重复:
JavaScript: Getting random value from an array
How can I choose an object key at random?
假设我们有一个这样的数组:
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>
此致 萨姆
答案 0 :(得分:8)
使用here描述的方法,我们可以创建以下函数:
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 benchmark比较这个和其他答案的速度。
答案 1 :(得分:1)
下面:
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)]];
}