如何在队列中存储 JavaScript 函数并按顺序执行?


有时,开发者可能需要将函数存储在队列中,并按其在队列中的存储顺序执行。在 JavaScript 中,我们可以使用数组创建一个队列。我们可以使用数组的 push() 方法将函数入队,使用 shift() 方法将函数出队。

下面,我们将看到一些在队列中存储 JavaScript 函数并在队列顺序中执行它们的示例。

语法

用户可以按照以下语法在队列中存储 JavaScript 函数并按顺序执行。

while (queue.length > 0) { 
   queue[0](); 
   queue.shift(); 
}

我们在上面的语法中使用 while 循环来迭代队列。我们执行队列中的第一个函数,然后从队列中移除该函数。

示例

在下面的示例中,我们创建了队列变量并将其初始化为空数组以使其成为队列。

之后,我们创建了三个不同的函数,并使用数组的 push() 方法将所有函数添加到队列中。每当用户按下按钮时,它都会调用 executeFunctions() 函数。在 executeFunctions() 函数中,我们使用 while 循环将函数从队列中出队。在循环的每次迭代中,我们执行数组中的第一个函数,并使用 array.shift() 方法从数组中移除第一个元素。

<html>
<body>
   <h3>Using the array to add functions in Queue and execute functions in particular order</h3>
   <div id = "content"> </div></br>
   <button onclick = "executeFunctions()"> Execute function in queue order </button>
   <script>
      let content = document.getElementById("content");
      // execute the functions in the order they are added to the queue
      var queue = [];
      function executeFunctions() {
         while (queue.length > 0) {
            queue[0]();
            queue.shift();
         }
      }
      function function1() {
         content.innerHTML += "Function 1 executed <br>";
      }
      function function2() {
         content.innerHTML += "Function 2 executed <br>";
      }
      function function3() {
         content.innerHTML += "Function 3 executed <br>";
      }
      queue.push(function1);
      queue.push(function2);
      queue.push(function3);
   </script>
</body>
</html>

示例

在下面的示例中,我们创建了像第一个示例一样的用作队列的数组。之后,我们将 sum()、sub()、mul() 和 div() 函数添加到队列中。

在 executeFunctions() 函数中,我们使用 for 循环按队列顺序调用所有函数。此外,我们还使用了 call() 方法来调用队列中的函数。

<html>
<body>
   <h3>Using the array to add functions in Queue and execute functions in particular order</h3>
   <div id = "content"> </div> </br>
   <button onclick = "executeFunctions()"> Execute function in queue order </button>
   <script>
      let content = document.getElementById("content");
      // execute the functions in the order they are added to the queue
      var queue = [];
      function executeFunctions() {
         for (let i = 0; i < queue.length; i++) {
            queue[i].call();
         }
      }
      let a = 10;
      let b = 5;
      function sum() {
      content.innerHTML += "Sum of " + a + " and " + b + " is " + (a + b);
      }
      function sub() {
         content.innerHTML += "<br>Subtraction of " + a + " and " + b + " is " + (a - b);
      }
      function mul() {
         content.innerHTML += "<br>Multiplication of " + a + " and " + b + " is " + (a * b);
      }
      function div() {
         content.innerHTML += "<br>Division of " + a + " and " + b + " is " + (a / b);
      }
      queue.push(sum);
      queue.push(sub);
      queue.push(mul);
      queue.push(div);
   </script>
</body>
</html>

用户学习了如何在队列中存储函数并按队列顺序执行它们。在 JavaScript 中,没有内置的队列数据结构,但我们可以使用数组作为队列。

在第一个示例中,我们使用了 shift() 方法将队列出队。在第二个示例中,我们使用了 for 循环按顺序执行函数。

更新于:2023年4月5日

578 次浏览

启动您的 职业生涯

完成课程后获得认证

开始学习
广告