2016-07-01 6 views
-3

fisher yate 셔플 방법을 사용하여 고유 한 배열 항목을 생성하는 방법은 무엇입니까? 코드 아래에 있지만 작동하지 않습니다.반복하지 않고 무작위 배열

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을 읽었습니까?

사용하려는 문서를 읽지 않고 질문하지 말아야합니다. 그냥 복사 SAIS하는 예를 붙여 : 당신이 그나마 경우에만 요청 후, 웹 페이지에

이동을 읽기 : 여기

이 구현은 자바 스크립트처럼 보이는 무엇을, 당신은 그것을 사용해야하지 않는 것이

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) 
관련 문제