如何使用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 :(得分: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)
答案 1 :(得分:0)
你读过fisher yate shuffle doc吗?
如果没有阅读有关您要使用的文档,请务必不要问。 您刚刚复制并粘贴了sais的示例:
以下是JavaScript中的实现内容,不是您应该使用它:
进入网页阅读,然后询问你是否不理解某事(我必须坚持;阅读后):
https://bost.ocks.org/mike/shuffle/
问候!