如何限制1-100中的一个数字自动生成JavaScript

ghhkc1vu  于 2023-01-19  发布在  Java
关注(0)|答案(2)|浏览(130)

我想限制一个数字,例如34在这个数字生成器。当有人生成一个数字与按钮点击,永远不会符合一个限制的数字,例如34。

function IsNumeric(n) {
    return !isNaN(n);
}
$(function () {
    $("#getit").click(function () {
        let numLow = $("#lownumber").val();
        let numHigh = $("#highnumber").val();

        let adjustedHigh = (parseFloat(numHigh) - parseFloat(numLow)) + 1;

        let numRand = Math.floor(Math.random() * adjustedHigh) + parseFloat(numLow);

        if ((IsNumeric(numLow)) && (IsNumeric(numHigh)) && (parseFloat(numLow) <= parseFloat(numHigh)) && (numLow !== '') && (numHigh !== '')) {
            $("#randomnumber").text(numRand);
        } else {
            $("#randomnumber").text("Careful now...");
        }
        return false;
    });

    let input = $("input[type=text]");
    
    input.each(function () {
        $(this).data("first-click", true);
    });

    input.focus(function () {
        if ($(this).data("first-click")) {
            $(this).val("");
            $(this).data("first-click", false);
            $(this).css("color", "black");
        }
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="page-wrap">
        
        <input type="text" id="lownumber" value="1" />
        
        <input type="text" id="highnumber" value="100" />
        
        <br />
        
        <button id="getit">Generate!</button>
        
        <div id="randomnumber"></div>
    
    </div>
kuarbcqp

kuarbcqp1#

添加条件检查以确保生成的号码不是受限号码:

var numRand = 0, restrictedNumber = 34;      
do {
    numRand = Math.floor(Math.random()*adjustedHigh) + parseFloat(numLow);
} while (numRand == restrictedNumber);

http://jsfiddle.net/JHhDx/
您可能还需要添加一些内容来检查,以确保受限号码也不是唯一可能的号码

kgsdhlau

kgsdhlau2#

除了循环之外,你还可以创建一个递归函数。
http://jsfiddle.net/chucknelson/eYAy6/2/

var userRestrictedNum = 34; //could get this from input    

function getit(restrictedNum) {
        ...random number code...

        if(numRand != restrictedNum) {
            return numRand;
        }
        else {
            return getit(restrictedNum);
        }
    }

    $("#getit").click(function() {
        $("#randomnumber").text(getit(userRestrictedNum));
    });

相关问题