我正在编写一个自定义shuffle方法作为训练练习。目标是将一个数组作为输入,然后吐出一个新的值,随机调整所有值。似乎我得到了代码的要点,但由于某种原因,我不断收到消息:“意外的kDO_COND,期待kEND,array.each做^ | item |”。知道我做错了吗?
def shuffle(array)
shuf = []
while array.length > 0
randIndex = rand(array.length)
currentIndex = 0
newArray = []
array.each do |item|
if randIndex == currentIndex
shuf.push(item)
else
newArray.push(item)
end
currentIndex = currentIndex + 1
end
array = newArray
end
shuf
end
答案 0 :(得分:0)
这适合任何在这里偶然发现快速洗牌的人:
def shuffle(arr)
arr.sort_by{ rand }
end
p(shuffle([1,2,3,4,5,6,7,8,9]))