最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How to restrict one number in 1-100 auto generate JavaScript - Stack Overflow

programmeradmin2浏览0评论

I want to restrict one number for example 34 in this number generator. When someone generates a number with a button click, never coincides with a restricted number for example 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=".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>

I want to restrict one number for example 34 in this number generator. When someone generates a number with a button click, never coincides with a restricted number for example 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./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>

Share Improve this question edited Jan 19, 2023 at 4:50 Michael M. 11.1k11 gold badges21 silver badges44 bronze badges asked Aug 15, 2013 at 9:26 LashaLasha 6251 gold badge5 silver badges15 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 4

Add a conditional check to make sure the generated number is not the restricted number:

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

http://jsfiddle/JHhDx/

You'll probably also want to add something to check to make sure the restricted number is also not the only possible number

Besides a loop, you could also make a recursive function.

http://jsfiddle/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));
    });
发布评论

评论列表(0)

  1. 暂无评论