0

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

1 回答 1

0

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

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

p(shuffle([1,2,3,4,5,6,7,8,9]))
于 2015-10-04T00:46:31.313 回答