0

このコードの解決策を見つけるのを手伝ってください。この番号ジェネレーターで、たとえば 34 などの 1 つの番号を制限したいのです。誰かがボタンをクリックして番号を生成する場合、たとえば 34 などの制限された番号と一致しないでください :) ありがとう

jsfiddle の例

function IsNumeric(n){
    return !isNaN(n);
} 

$(function(){

    $("#getit").click(function() {

        var numLow = $("#lownumber").val();
        var numHigh = $("#highnumber").val();

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

        var 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;
    });

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

    $("input[type=text]").focus(function(){

        if ($(this).data("first-click")) {
            $(this).val("");
            $(this).data("first-click", false);
            $(this).css("color", "black");
        }

    });

});

そしてHTML

<div id="page-wrap">

    <img src="images/randomnumb.png" alt="get a random number between..." />

    <input type="text" id="lownumber" value="1" />
    and
    <input type="text" id="highnumber" value="100" />

    <br />

    <button id="getit">Generate!</button>

    <div id="randomnumber"></div>

</div>
4

2 に答える 2

1

条件付きチェックを追加して、生成された数値が制限された数値でないことを確認します。

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

http://jsfiddle.net/JHhDx/

おそらく、制限された番号が唯一の可能な番号ではないことを確認するために、何かを追加することも必要になるでしょう。

于 2013-08-15T09:46:04.223 に答える
0

ループ以外に、再帰関数を作成することもできます。

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));
    });
于 2013-08-15T09:52:14.440 に答える