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

How to properly loop two functions to each other

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();
<div class="bdy">
  <p id="dem">AHAHHAHAHH!!!</p>
</div>

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

var arr = ["", "", "", "", "", "", "", "", "", "", ""];
var el = document.getElementById("dem");
function updateData(a) {
    el.innerHTML = a.join('');
}

function changeData() {
    for (i = 0; i < arr.length; i++) {
        arr[i] = Math.floor(Math.random() * 2) ? "|" : "1";
    }
    updateData(arr);
}
setInterval(changeData, 500);
<div class="bdy" >
    <p id="dem">AHAHHAHAHH!!!</p>
</div>

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

一些注释:

  • 使用以小写字母开头的函数和变量,因为以大写字母开头表示可实例化的函数,所有大写字母表示约定的常量。

  • 直接使用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);
<p id="dem">AHAHHAHAHH!!!</p>