如何从Assoc数组中选择一个随机值,然后显示键和值

时间:2014-12-18 03:13:06

标签: javascript arrays random

您好我试图在字符串中单独显示随机值密钥对。我希望价值和关键能够保持在一起。

charAT = {
         'Flamethrower' : Math.floor(Math.random()*(15-5+1)+5),
         'Headbut' : Math.floor(Math.random()*(5-3+1)+3),
         'Fireblast' : Math.floor(Math.random()*(25-10+1)+10),
         'Tailwhip': 0
     };

想要这个但是对于assoc数组

rand = charAT[Math.floor(Math.random() * charAT.length)];

示例代码通缉

alert('charizard used '+ rand:key + 'and did ' + rand:value + ' damage!')

通缉输出

charizard使用火焰喷射器并造成12点伤害!

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以使用Object.keys()来获取填充了对象属性名称的数组。 因此,在该数组上应用随机索引,您可以获得一个随机属性名称,然后您可以使用它来获取所需的随机属性值。

 var charAT = {
     'Flamethrower' : Math.floor(Math.random()*(15-5+1)+5),
     'Headbut' : Math.floor(Math.random()*(5-3+1)+3),
     'Fireblast' : Math.floor(Math.random()*(25-10+1)+10),
     'Tailwhip': 0
 };

 var ix = Math.floor(Math.random() * Object.keys(charAT).length);
 var rand = Object.keys(charAT)[ix];
 alert(rand + ":" + charAT[rand]);