Math.random()*9要求取0-9随机数。上面的命令经常出出现重复的数。我希望0-9中的10个值的随机出但不重复,
即是讲要随便但每次都不想要出现重复的值,不知道这样可以么。有啥办法???

解决方案 »

  1.   


    function ran(){
    var a,b;
    return function(){
    b=parseInt(Math.random()*9);
    if(b!==a){
    a=b;
    }else{
    arguments.callee();
    }
    return b;
    };
    }
    var ran0_9=ran();
      

  2.   

    将0-9放到一个数组中,然后for循环打乱顺序就行了。
      

  3.   

    啊。 arguments.callee();这个是什么意思啊。
      

  4.   

    调用函数自身,这里你可以理解成ran()
      

  5.   

    var count=10; 
    var original=new Array;//原始数组 
    //给原始数组original赋值 
    for (var i=0;i<count;i++){ 
    original[i]=i+1; 

    var d1=new Date().getTime(); 
    original.sort(function(){ return 0.5 - Math.random(); }); 
    for (var i=0;i<count;i++){ 
    document.write(original[i]+" , "); 

    var d2=new Date().getTime(); 
    document.write("运算耗时"+(d2-d1)); 
      

  6.   

    写个if判断语句,如果出现重复的就重新random一个随机数出来。
      

  7.   

    var stack = [0,1,2,3,4,5,6,7,8,9];

    while(stack.length) {
    console.log(stack.splice(parseInt(Math.random() * stack.length) - 1, 1));
    }
      

  8.   

    2个错误 改下 var stack = [0,1,2,3,4,5,6,7,8,9];
                
                while(stack.length) {
                    console.log(stack.splice(parseInt(Math.random() * stack.length), 1)[0]);
                }