如何正确地将两个函数相互循环

时间:2017-11-02 06:14:57

标签: javascript html infinite-loop



var Arr = ["", "", "", "", "", "", "", "", "", "", ""];

function Switch(a) {
  document.getElementById("dem").innerHTML = a.join('');
  Try();
}

function Try() {
  for (i = 0; i < Arr.length; i++) {
    var Ran = Math.floor(Math.random() * 2);
    switch (Ran) {
      case 0:
        Arr[i] = "|";
        break;
      case 1:
        Arr[i] = "1";
        break;
    }
  }

  Switch(Arr);
}

Try();
&#13;
<div class="bdy">
  <p id="dem">AHAHHAHAHH!!!</p>
</div>
&#13;
&#13;
&#13;

我需要javascript来不断更改段落的内容,但只有在页面加载时才会更改。我认为这是因为我在页面加载后调用了该函数,或者Switch函数仍然没有识别Try函数,因为它是在它之后定义的。 我真的不知道如何解决这个问题,请帮忙。感谢

2 个答案:

答案 0 :(得分:3)

import App from './App'
, which indeed does not have a template or render function. Try removing

使用setInterval以指定的时间间隔(以毫秒为单位)调用函数。

答案 1 :(得分:0)

一些注释:

  • 使用函数和变量以小写字母开头,因为以大写字母表示可执行函数,所有大写字母意味着常量为常规。

  • 直接使用函数名称const users = [{ name: "Jon", age: 34, country: "ES" },{ name: "Sam", age: 24, country: "US" }] let arrayOfStrings = users.map(function(a){ return Object.values(a).join(',') } }) // arrayOfStrings = ["Jon,34,ES", "Sam,24,US"] //ES6 way: let arrayOfStrings = users.map( a => Object.values(a).join(',') ) // arrayOfStrings = ["Jon,34,ES", "Sam,24,US"]

  • 如果您只需要一个字母来替换,那么您可以使用带字母和索引的字符串来获取该字母。

setInterval
function updateElement(a) {
    document.getElementById("dem").innerHTML = a.join('');
}

function change() {
    for (i = 0; i < array.length; i++) {
        array[i] = "|1"[Math.floor(Math.random() * 2)];
    }
    updateElement(array);
}

var array = ["", "", "", "", "", "", "", "", "", "", ""];

setInterval(change, 500);