2017-09-20 1 views
0

J'ai ce javascript.Valeur incrémentielle à partir du nombre aléatoire

$(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; 
} 

Et ce html:

<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> 

je voudrais ajouter au script '# number2', '# number3' et # Number4 où leurs valeurs respectives sont une augmentation de la valeur générée précédente , ce qui signifie où:

  • number2 = nombre1 + 01 (01 étant la valeur hexadécimale)
  • nombre3 = number2 + 01 (01 étant une valeur hexadécimale)
  • Number4 = number3 + 01 (01 étant une valeur hexadécimale)

Comment cela peut-il être fait?

Merci d'avance.

+0

Mes excuses pour ceux qui ont répondu. J'ai fait une erreur dans la valeur HEX ce n'est pas 02 mais 01. Je suppose que cela ne changerait pas beaucoup de toute façon dans le code; i.e 01 au lieu de 02 le cas échéant. – Hanuman

Répondre

1

La solution presque finale peut être mis en œuvre:

$(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

Vous pouvez essayer:

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

Merci. Cela vous dérangerait-il d'intégrer cela au code? Je ne suis pas vraiment compétent en codage. Merci d'avance. – Hanuman

1

Personnellement, je venais de faire de plus petites portions de code:

//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; 
} 

Vous souhaitez ensuite appeler les valeurs en appelant:

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

Puis sortir les valeurs en appelant toHex(first) Sinon, vous pouvez le faire à la fois:

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

Demo: Fiddle