首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算生成的所有数字?

如何计算生成的所有数字?
EN

Stack Overflow用户
提问于 2019-03-31 15:35:51
回答 2查看 85关注 0票数 1

我想做的是:

  • 计算每5秒生成的所有数字。

实际结果

  • 只生成数字,但不计算它们。

预期结果

  • 计算问题旁边生成和显示的所有数字。

代码语言:javascript
复制
function generator() {
  number = Math.floor(Math.random() * 11);
  setTimeout(function() {
    setTimeout(function() {
      document.getElementById("demo").innerHTML = number;
      generator();
    }, 5000);
  })
}

function add() {
var count = 0
  var element = document.getElementById("demo").innerHTML;
  if (element.innerHTML) {
  count++
  document.getElementById("demo1").textContent = count++;
  }
}

generator();
add();
代码语言:javascript
复制
<p id="demo"></p>
How many numbers was generated?
<p id="demo1"></p>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-31 15:43:22

我建议您对重复调用使用setInterval,使用data属性存储当前计数。

提取document.getElementById调用,以避免在每个setInterval循环中查找元素。

代码语言:javascript
复制
var demoElem = document.getElementById("demo");
var countElem = document.getElementById("demo1");

function generator() { 
  var interId = setInterval(function() {    
    var number = Math.floor(Math.random() * 11);
    demoElem.textContent = number;    
    add();
  }, 2000);
}

function add() {
  countElem.dataset.count = Number(countElem.dataset.count) + 1;
  countElem.textContent = countElem.dataset.count;    
}

generator();
代码语言:javascript
复制
<p id="demo"></p>
How many numbers was generated?
<p id="demo1" data-count='0'></p>

票数 0
EN

Stack Overflow用户

发布于 2019-03-31 15:38:15

你只给add()打过一次电话。您可能希望在generate()函数中调用它。此外,var count = 0应该在add()函数之外,以便它的值在调用中被持久化。

西德诺特:

  • 在每次count调用中增加两次add()
  • setTimeout内部的外部generate()是无用的。
  • number是一个泄漏的全局,您应该用var声明它。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55442525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档