你如何在Coffeescript中洗牌?

时间:2015-09-14 18:44:12

标签: algorithm coffeescript shuffle

如何在Coffescript中对数组进行洗牌?

3 个答案:

答案 0 :(得分:0)

来自Fisher–Yates shuffle

github(已修改):

fisherYates = (arr) ->
    i = arr.length
    return arr unless i > 0

    while --i
        j = Math.floor(Math.random() * (i+1))
        [arr[i], arr[j]] = [arr[j], arr[i]] # use pattern matching to swap

答案 1 :(得分:0)

我的表格在我测试时给了我意想不到的行为。 这种方式对我有用。

shuffle_array = (arr) ->
i = arr.length

while --i
  j = Math.floor(Math.random() * (i+1))
  [arr[i], arr[j]] = [arr[j], arr[i]]

return arr unless i > 0

干杯。

答案 2 :(得分:0)

Array::shuffle = ->
    a=@
    i=a.length
    while i>0
        int=Math.floor(Math.random()*i)
        i--
        o=a[i]
        a[i]=a[int]
        a[int]=o
    a

console.log([1..10].shuffle())