【问题标题】:Taking random value from array - Javascript从数组中获取随机值 - Javascript
【发布时间】:2018-06-19 09:26:25
【问题描述】:

我有数组 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'):

怎么了?

【问题讨论】:

  • 您的代码有效,您只是一遍又一遍地打印相同的pickBonus 值...您需要运行Math.random() 部分,以接收新值。
  • @tipsfedora 相同
  • 对我来说很好。也许您的代码中的其他地方有问题?

标签: javascript arrays math random


【解决方案1】:

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

不行,每次都需要从数组中重新获取随机值。把它变成一个函数

 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() );

【讨论】:

    【解决方案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());

    【讨论】:

      【解决方案3】:

      替换最后一行

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

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

      【讨论】:

        猜你喜欢
        • 2022-10-08
        • 1970-01-01
        • 1970-01-01
        • 2011-08-20
        • 2020-05-13
        相关资源
        最近更新 更多