2016-07-01 23 views
-3

fisher yate shuffleメソッドを使用してユニークな配列アイテムを生成する方法は?コードの下にあるが、うまくいきませんでした。ランダム配列で繰り返し失敗なし

function shuffle(array) { 
    var i = array.length, 
     j = 0, 
     temp; 

    while (i--) { 

     j = Math.floor(Math.random() * (i+1)); 

     // swap randomly chosen element with current element 
     temp = array[i]; 
     array[i] = array[j]; 
     array[j] = temp; 

    } 

    return array; 
} 

var ranNums = shuffle([1,2,3,4,5,6,7,8,9,10]); 

console.log(ranNums) 
+0

「機能しません」とは、正確には何かを意味しますか? – str

+0

正常に動作します... –

答えて

0

fisher yate shuffle docを読んだことがありますか?

あなたは使用したいことについて医者を読まずに尋ねるべきではありません。 あなただけコピーして例を貼り付けサイスこと:あなたはいけない場合にのみ尋ね、その後、

行くウェブページに読み:

はここであなたがそれを使用する必要があることではない、実装はJavaScriptで次のようになります

https://bost.ocks.org/mike/shuffle/

よろしく:;(READ後、私は主張しなければならない)何かを理解します!

1

このフィドルで見ると、うまく動作し、クールです。 http://jsfiddle.net/9RxLM/6010/ 実際にあなたの問題は何ですか?

function shuffle(array) { 
var i = array.length, 
    j = 0, 
    temp; 

while (i--) { 

    j = Math.floor(Math.random() * (i+1)); 

    // swap randomly chosen element with current element 
    temp = array[i]; 
    array[i] = array[j]; 
    array[j] = temp; 

} 

return array; 
    } 

    var ranNums = shuffle([1,2,3,4,5,6,7,8,9,10]); 

    alert(ranNums) 
関連する問題