2017-09-20 118 views
0

我有這個javascript。隨機數的遞增值

$(function() { 

    $("#generate").click(function() { 
     $("#number1").val(generateNumb); 
     #$("#number2"); 
     #$("#number3"); 
     #$("#number4"); 
    }); 

}); 

function generateNumb() { 
    return "000000" + random(10, 16777215).toString(16).toUpperCase(); 
} 

function random(min, max) { 
    min = Math.ceil(min); 
    max = Math.floor(max); 
    return Math.floor(Math.random() * (max - min + 1)) + min; 
} 

而且這個網站:

<body> 

    <h1>Number Generator</h1 > 

    <div>  
     <input id="generate" type=button value="Generate" /><br/><br/> 
    Number<br/> 
     <input id="number1" placeholder="Number 1" /><br/> 
     <input id="number2" placeholder="Number 2" /><br/> 
     <input id="number3" placeholder="Number 3" /><br/> 
     <input id="number4" placeholder="Number 4" /><br/> 
    </div> 

</body> 

我想補充到劇本「#編號2」,「#number3的」和#號碼4,其中各自的值從先前產生的價值增量,這意味着其中:

  • NUMBER2 =數字1 + 01(01是一個十六進制值)
  • number3的= NUM​​BER2 + 01(01是一個十六進制值)
  • number4 = number3 + 01(01是一個十六進制值)

這怎麼辦?

預先感謝您。

+0

我的道歉爲那些回答。我在HEX值中犯了一個錯誤,它不是02而是01.我認爲在代碼中這不會有太大的改變。即01適用時代替02。 – Hanuman

回答

1

的幾乎最終的解決方案可以實現爲:

$(function() { 
 

 
    $("#generate").click(function() { 
 
    var increaseBy = increaseBase(generateNumb()); 
 

 
    $("#number1").val(increaseBy(0)); 
 
    $("#number2").val(increaseBy(1)); 
 
    $("#number3").val(increaseBy(2)); 
 
    $("#number4").val(increaseBy(3)); 
 
    }); 
 

 
}); 
 

 
function increaseBase(base) { 
 
    return function(value) { 
 
    return "000000" + (base + value).toString(16).toUpperCase() 
 
    } 
 
} 
 

 
function generateNumb() { 
 
    return random(10, 16777215); 
 
} 
 

 
function random(min, max) { 
 
    min = Math.ceil(min); 
 
    max = Math.floor(max); 
 
    return Math.floor(Math.random() * (max - min + 1)) + min; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h1>Number Generator</h1> 
 

 
<div> 
 
    <input id="generate" type=button value="Generate" /><br/><br/> Number 
 
    <br/> 
 
    <input id="number1" placeholder="Number 1" /><br/> 
 
    <input id="number2" placeholder="Number 2" /><br/> 
 
    <input id="number3" placeholder="Number 3" /><br/> 
 
    <input id="number4" placeholder="Number 4" /><br/> 
 
</div>

1

你可以試試:

var numberOfInputs = 4; 
var inputs = [] 
for(n in numberOfInputs) { 
    inputs.push($(`#number${n}`)) // We had HTML nodes in a table 
inputs[0].val(generateNumb()) 
for(i=1;i<inputs.length;i++) { 
    inputs[i] = inputs[i-1].val() + "0x02" 
+0

謝謝。你介意把它和代碼整合在一起嗎?我不擅長編碼。提前致謝。 – Hanuman

1

個人而言,我只希望做的代碼更小的部分:

//create your number 
function generateNumb() { 
    return random(10, 16777215) 
} 
//call this to output your number in your forms 
function toHex(num) { 
    return "000000" + num.toString(16).toUpperCase(); 
} 

function random(min, max) { 
    min = Math.ceil(min); 
    max = Math.floor(max); 
    return Math.floor(Math.random() * (max - min + 1)) + min; 
} 
通過調用 toHex(first)

first = generateNumb(); 
second = first + parseInt("02", 16); 

然後輸出的值或者你可以做一次:

你會再通過調用調用值

firstHex = toHex(generateNumb); 
secondHex = toHex(generateNumb+parseInt("02",16)); 

演示:Fiddle