自定义随机播放方法遇到意外的kDO_COND

时间:2013-05-22 17:00:38

标签: ruby

我正在编写一个自定义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

1 个答案:

答案 0 :(得分:0)

这适合任何在这里偶然发现快速洗牌的人:

def shuffle(arr)
  arr.sort_by{ rand }
end

p(shuffle([1,2,3,4,5,6,7,8,9]))