【问题标题】:Retrieve x random elements from an array从数组中检索 x 个随机元素
【发布时间】:2011-09-29 18:08:52
【问题描述】:

我正在努力编写一个干净的方法,当传递一个字符串数组时,x 返回一个随机的数组元素列表,总计 x,例如。

def getrandomarrayelements(thearray, howmany)
    return [something]
end

是的,我应该提交我现有的代码,虽然效果不好,但它有 8 行长,我感觉可以一次性完成?!

【问题讨论】:

  • 这是一个洗牌和交易。有很多现有技术,不是吗?

标签: ruby-on-rails ruby arrays


【解决方案1】:

在 ruby​​ 1.9 中:

irb(main):001:0> [1,2,3,4,5].sample(3)
=> [2, 4, 5]
irb(main):002:0> [1,2,3,4,5].sample(3)
=> [2, 5, 3]

对于 ruby​​ 1.8 来说是这样的:

def sample(arr, n)
  arr.shuffle[0...n]
end

irb(main):009:0> sample([1,2,3,4,5], 3)
=> [5, 1, 3]
irb(main):010:0> sample([1,2,3,4,5], 3)
=> [3, 4, 2]

【讨论】:

  • 在 1.9 版本中,这会返回独特的元素吗,忘了在我的问题中提及?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-07
  • 2014-07-23
  • 1970-01-01
相关资源
最近更新 更多