用JS做不重复随机数。

用JS做1到35的随机数要求不能重复、我现在只会随机数但是不知道怎么判断随机出来一个数字是如何跟前面数字效验的。知道要是if但是不会写判断语句不知道如何提出当前随机数和前... 用JS做1到35的随机数

要求不能重复、我现在只会随机数 但是不知道怎么判断随机出来一个数字

是如何跟前面数字效验的。知道要是if 但是不会写判断语句不知道如何提出

当前随机数和前面随机过的进行比较!
不知道如何判断是否重复!
展开
 我来答
baby嘟嘟表妹
2018-06-06
知道答主
回答量:17
采纳率:0%
帮助的人:4.7万
展开全部

上一位写的太麻烦了

我做了个比较简单易懂的,包含三个参数:生成几位数字,生成数字范围的最小值,最大值

typeScript代码,会js应该能看懂

    /**
     * 生成不重复的digit位数字,最小值min,最大值max
     */
    codeEasyInit(digit:number,min:number,max:number): number[]{
        //  判断位数是否超过最大值和最小值的差+1
        if(max - min + 1 >= digit){
            let range:number[] = [];
            let result = [];

            //  生成数字的范围
            for(let i=0;i<max;i++){
                range[i] = i + min;
            }

            //  从数字范围数组中随机取数字,取出后把范围数组中的数字删除
            for(let i=0;i<digit;i++){
                let numIndex = Math.floor(Math.random()*(range.length-1));
                let numValue = range[numIndex];
                result[i] = numValue;
                range.splice(numIndex,1);
            }
            console.log(`init simple code: ${result}`);
            return result;
        } else {
            console.log(`The number of digits is too large to be generated`);
            return null;
        }
    }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
於琇竺哲彦
2019-06-13 · TA获得超过3961个赞
知道大有可为答主
回答量:3141
采纳率:26%
帮助的人:197万
展开全部
<script>
var
r=parseInt(Math.random()*38);
var
array=[];
for(var
i=0;i<7;i++)
{
var
flag=0;
do
{
for(var
j=0;j<array.length;j++)
{
if(array[j]==r)
{flag=1;break;}
}
if(!flag)
{
array[array.length]=r;
}
else
{
r=parseInt(Math.random()*38);
}
}while(!flag);
}
for(var
j=0;j<array.length;j++)
document.write(array[j]+"
");
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c4249ef
推荐于2018-04-10 · TA获得超过4867个赞
知道大有可为答主
回答量:1855
采纳率:0%
帮助的人:3231万
展开全部
<script>
var r=parseInt(Math.random()*38);
var array=[];
for(var i=0;i<7;i++)
{
var flag=0;
do
{
for(var j=0;j<array.length;j++)
{
if(array[j]==r) {flag=1;break;}
}
if(!flag)
{
array[array.length]=r;
}
else
{
r=parseInt(Math.random()*38);
}
}while(!flag);
}
for(var j=0;j<array.length;j++)
document.write(array[j]+" ");
</script>
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式