从数组中取随机值 - Javascript

时间:2018-01-10 08:52:25

标签: javascript arrays math random

我有数组od值,我想从中随机选择。这是我的代码:

var bonus1='Opony zimowe';
var bonus2='Alarm';
var bonus3 = 'Bagażnik';
var bonus4 = 'Relingi';
var bonus5 = 'Box na narty';
var bonusy = [bonus1, bonus2, bonus3, bonus4, bonus5];
var pickBonus= bonusy[Math.floor(Math.random() * bonusy.length)];

但它并没有显示随机值(它始终是console.log - ' Alarm'):

Console Output

有什么问题?

3 个答案:

答案 0 :(得分:10)

从您的屏幕截图中看来,您基本上是在尝试多次打印相同的值,期望获得不同的值。

每次都无法从数组中获得随机值。把它变成一个函数

 var pickBonus= () => bonusy[Math.floor(Math.random() * bonusy.length)];

现在将其作为

调用
console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );

<强>演示

&#13;
&#13;
var bonus1='Opony zimowe';
var bonus2='Alarm';
var bonus3 = 'Bagażnik';
var bonus4 = 'Relingi';
var bonus5 = 'Box na narty';
var bonusy = [bonus1, bonus2, bonus3, bonus4, bonus5];
var pickBonus= () => bonusy[Math.floor(Math.random() * bonusy.length)];

console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
&#13;
&#13;
&#13;

答案 1 :(得分:2)

pickBonus应该是一个函数而不是你的情况中的变量。

然后您可以运行此类代码并始终获取随机值:

&#13;
&#13;
var bonus1 = 'Opony zimowe';
var bonus2 = 'Alarm';
var bonus3 = 'Bagażnik';
var bonus4 = 'Relingi';
var bonus5 = 'Box na narty';
var bonusy = [bonus1, bonus2, bonus3, bonus4, bonus5];

function pickBonus() {
  return bonusy[Math.floor(Math.random() * bonusy.length)];
}

console.log(pickBonus());
console.log(pickBonus());
console.log(pickBonus());
console.log(pickBonus());
&#13;
&#13;
&#13;

答案 2 :(得分:1)

替换最后一行

var pickBonus= bonusy[Math.floor(Math.random() * (bonusy.length-1)) + 1]

并将整个代码包装在一个函数中,以在每个函数调用中填充新的pickBonus