什么相当于Javascript中的.sample?

时间:2012-02-15 00:54:09

标签: javascript methods google-chrome-extension

我正在开发即将发布的小型Chrome扩展程序,但是在此扩展程序中,我必须从数组中取一个随机项并将其显示在屏幕上。在过去,我使用过很多Ruby代码,并记住方法'.sample',它在屏幕上显示一个数组中的随机项。

示例(在Ruby中):

farm_animals = ['cow', 'chicken', 'pig', 'horse']
puts farm_animals.sample

输出可能最终会像......

>> cow

Javascript中有这个方便的数组方法吗?谢谢!

2 个答案:

答案 0 :(得分:4)

尝试:

var farm_animals = ['cow', 'chicken', 'pig', 'horse']
alert(farm_animals[Math.floor ( Math.random() * farm_animals.length )])

或作为一种功能:

function sample(array) {
  return array[Math.floor ( Math.random() * array.length )]
}

console.log(sample(farm_animals))

答案 1 :(得分:2)

如果你不反对黑客攻击内置对象原型:

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

然后

var samp = ["hello", "friendly", "world"].sample();

给你一个随机元素。

很多人 - 大多数人 - 会说这种不那么有用的功能不值得污染这样的内置原型。跟随你的幸福。