【发布时间】:2020-08-02 08:06:58
【问题描述】:
我正在尝试编写 shuffle 方法的替代方法,但不明白为什么它会返回重复项。有没有人看到问题?非常感谢!
def return_random_songs(songs)
returned_songs = []
while returned_songs.length < songs.length
unless returned_songs.include?(songs[rand(songs.length)])
returned_songs << songs[rand(songs.length)]
end
end
return returned_songs
end
songs = ["song 1", "song 2", "song 3", "song 4"]
pp return_random_songs(songs)
=> ["song 2", "song 4", "song 1", "song 1"] #duplicates!
【问题讨论】:
-
你为什么要写
shuffle的替代品?使用现有方法,因为它经过良好测试并且已经可用。 .
标签: arrays ruby random include