Math.round(Math.random)返回3个唯一数字问题 [英] Math.round(Math.random) return 3 unique numbers issue

查看:329
本文介绍了Math.round(Math.random)返回3个唯一数字问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好的,所以我需要返回3个彼此不相等的随机数。然后,当再次运行该功能时,数字也不应该是上一次运行中选择的任何数字。

Okay, so I need to return 3 random numbers that do not equal each other. Then when running the function again the numbers should also not be any of the numbers selected in the previous run.

我写了一个函数来执行此操作,但我一直将未定义作为返回值之一。

I wrote up a function to do so, but I keep getting undefined as one of the return values.

我在这里做错了什么?

f1 = 0; f2 = 0; f3 = 0;

function randomNumber(r1, r2, r3) {
    ranNumb = Math.floor(Math.random()*51);
    if (ranNumb != r1 && ranNumb != r2 && ranNumb != r3) {
        return ranNumb;
    }
    else {
        randomNumber(r1, r2, r3);
    }
}

$(document).ready( function() {
    $("#left_btn, #right_btn").click(function() {
        f1 = randomNumber(f1, f2, f3);
        f2 = randomNumber(f1, f2, f3);
        f3 = randomNumber(f1, f2, f3);
        alert(f1+" "+f2+" "+f3);
    });
});


推荐答案

你的问题在这里:

else {
    randomNumber(r1, r2, r3);
}

您需要返回递归调用 randomNumber 的结果。

You need to return the result of the recursive call to randomNumber.

else {
    return randomNumber(r1, r2, r3);
}

这篇关于Math.round(Math.random)返回3个唯一数字问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆