从数组中挑选随机元素

Sli*_*k23 2 ruby

可能重复:
如何从数组中随机选取?

确保不选择不存在的项目的适当方法是什么?

 icons = %w[asterisk star arrow]
 random = rand(icons.length)
Run Code Online (Sandbox Code Playgroud)

要么

icons = %w[asterisk star arrow]
random = rand(icons.length -1)
Run Code Online (Sandbox Code Playgroud)

cly*_*yfe 21

如何使用Array#sample

[1, 2, 3].sample(1)
Run Code Online (Sandbox Code Playgroud)

sample→obj
sample(random:rng)→obj
sample(n)→new_ary
sample(n,random:rng)→new_ary
从数组中选择一个随机元素或n个随机元素.通过在数组中使用随机和唯一索引来选择元素,以确保元素不会重复,除非数组已包含重复元素.如果数组为空,则第一个表单返回nil,第二个表单返回一个空数组.
如果给出rng,它将用作随机数发生器.

(假设你对元素而不是索引更感兴趣)