。包括?阵列[随机数(array.length)]
.include? array[rand(array.length)]
我正在尝试编写随机播放方法的替代方法,但不明白为什么它 returns 会重复。有人看到问题了吗?非常感谢!
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!
因为您计算了两次随机歌曲:检查时和添加歌曲时(因此您不知道 returned_songs
数组中的内容)。尝试
def return_random_songs(songs)
returned_songs = []
while returned_songs.length < songs.length
random_song = songs[rand(songs.length)]
unless returned_songs.include?(random_song)
returned_songs << random_song
end
end
return returned_songs
end
我正在尝试编写随机播放方法的替代方法,但不明白为什么它 returns 会重复。有人看到问题了吗?非常感谢!
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!
因为您计算了两次随机歌曲:检查时和添加歌曲时(因此您不知道 returned_songs
数组中的内容)。尝试
def return_random_songs(songs)
returned_songs = []
while returned_songs.length < songs.length
random_song = songs[rand(songs.length)]
unless returned_songs.include?(random_song)
returned_songs << random_song
end
end
return returned_songs
end