协慌网

登录 贡献 社区

从 JavaScript 数组获取随机值

考虑:

var myArray = ['January', 'February', 'March'];

如何使用 JavaScript 从此数组中选择随机值?

答案

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

如果您的项目中已经包含下划线破折号 ,则可以使用_.sample

// will return one item randomly from the array
_.sample(['January', 'February', 'March']);

如果您需要随机获得多个项目,则可以在下划线中将其作为第二个参数传递:

// will return two items randomly from the array using underscore
_.sample(['January', 'February', 'March'], 2);

或在_.sampleSize中使用_.sampleSize方法:

// will return two items randomly from the array using lodash
_.sampleSize(['January', 'February', 'March'], 2);

原型法

如果计划大量获取随机值,则可能需要为其定义一个函数。

首先,将其放在您的代码中的某个位置:

Array.prototype.sample = function(){
  return this[Math.floor(Math.random()*this.length)];
}

现在:

[1,2,3,4].sample() //=> a random element

根据CC0 1.0 许可证的条款向公共领域发布的代码。