我有数组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'):
有什么问题?
答案 0 :(得分:10)
从您的屏幕截图中看来,您基本上是在尝试多次打印相同的值,期望获得不同的值。
每次都无法从数组中获得随机值。把它变成一个函数
var pickBonus= () => bonusy[Math.floor(Math.random() * bonusy.length)];
现在将其作为
调用console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
<强>演示强>
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;
答案 1 :(得分:2)
pickBonus
应该是一个函数而不是你的情况中的变量。
然后您可以运行此类代码并始终获取随机值:
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;
答案 2 :(得分:1)
替换最后一行
var pickBonus= bonusy[Math.floor(Math.random() * (bonusy.length-1)) + 1]
并将整个代码包装在一个函数中,以在每个函数调用中填充新的pickBonus
值