从数组中获取随机值-Javascript

从数组中获取随机值-Javascript,javascript,arrays,math,random,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(

我有数组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-‘报警’):


怎么了?

从您的屏幕截图上可以看出,您基本上是在尝试多次打印相同的值,希望得到不同的值

它不起作用,每次都需要从数组中再次获取随机值。把它变成一个函数

 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=‘盒子不存在’;
var bonusy=[bonus1,bonus2,bonus3,bonus4,bonus5];
var pickBonus=()=>bonusy[Math.floor(Math.random()*bonusy.length)];
log(pickBonus());
log(pickBonus());
log(pickBonus());

log(pickBonus())从您的屏幕截图中可以看出,您基本上是在尝试多次打印相同的值,希望得到不同的值

它不起作用,每次都需要从数组中再次获取随机值。把它变成一个函数

 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=‘盒子不存在’;
var bonusy=[bonus1,bonus2,bonus3,bonus4,bonus5];
var pickBonus=()=>bonusy[Math.floor(Math.random()*bonusy.length)];
log(pickBonus());
log(pickBonus());
log(pickBonus());

log(pickBonus())
pickBonus
在您的案例中应该是一个函数,而不是一个变量

然后,您可以运行这种类型的代码并始终获得随机值:

var bonus1='Opony zimowe';
var bonus2=‘报警’;
var bonus3='Bagażnik';
var bonus4=‘Relingi’;
var bonus5=‘盒子不存在’;
var bonusy=[bonus1,bonus2,bonus3,bonus4,bonus5];
函数pickBonus(){
返回bonusy[Math.floor(Math.random()*bonusy.length)];
}
log(pickBonus());
log(pickBonus());
log(pickBonus());

log(pickBonus())
pickBonus
在您的案例中应该是一个函数,而不是一个变量

然后,您可以运行这种类型的代码并始终获得随机值:

var bonus1='Opony zimowe';
var bonus2=‘报警’;
var bonus3='Bagażnik';
var bonus4=‘Relingi’;
var bonus5=‘盒子不存在’;
var bonusy=[bonus1,bonus2,bonus3,bonus4,bonus5];
函数pickBonus(){
返回bonusy[Math.floor(Math.random()*bonusy.length)];
}
log(pickBonus());
log(pickBonus());
log(pickBonus());
log(pickBonus())替换最后一行

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

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

替换最后一行

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


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

您的代码工作正常,您只需反复打印相同的
pickBonus
值。。。您需要运行
Math.random()
部分,才能收到一个新值。@tipsfedora同样适用于我。也许您的代码中的其他地方有问题?您的代码工作正常,您只是一次又一次地打印相同的
pickBonus
值。。。您需要运行
Math.random()
部分,才能收到一个新值。@tipsfedora同样适用于我。也许代码中的其他地方有问题?