क्या यादृच्छिक सेकंड के बाद किसी संख्या को 1 से बढ़ाने का कोई तरीका है। उदाहरण के लिए, आधार मान 10 है। तो यह यादृच्छिक सेकंड के बाद 1 से बदल जाएगा (यानी 1/2/3/4/5 सेकंड यादृच्छिक रूप से)।

मैंने इस तरह की कोशिश की है:

var startVal = 10;
setInterval(function(){
    var theVal = startVal + 1; 
    startVal = theVal;
}, Math.round(Math.random() * (6000 - 2000)) + 2000);

संख्या बढ़ रही है लेकिन समय यादृच्छिक नहीं है। कृपया मदद करे।

-2
DevzValley 1 जुलाई 2020, 16:19

2 जवाब

सबसे बढ़िया उत्तर

यदि आप प्रत्येक पुनरावृत्ति पर समय बदलना चाहते हैं, तो आपको सेटटाइमआउट का उपयोग करना होगा।

var startVal = 10;
function increase() {
  setTimeout(function(){
    var theVal = startVal + 1; 
    startVal = theVal;
    increase();
    console.log(startVal);
  }, Math.round(Math.random() * (6000 - 2000)) + 2000);
}
increase()
1
epascarello 1 जुलाई 2020, 16:38

यहां एक कामकाजी उदाहरण है। 0,1 या 2 सेकंड के बाद संख्या एक से बढ़ा देंगे

let number = 10;

function getRandomInt(max) {
  return Math.floor(Math.random() * Math.floor(max));
}
function addNumber() {
  number++;
  console.log(number)
}
setTimeout(addNumber, getRandomInt(3) * 1000)
1
Cedervall 1 जुलाई 2020, 16:34