JavaScript 如何迭代回调n次

JavaScript 如何迭代回调n次

给定一个回调函数,我们需要对回调函数进行n次迭代。回调函数是作为参数传递的函数。为了迭代回调函数,我们需要运行回调函数n次。

方法1

我们使用递归来迭代n次的回调函数。

  • 首先创建一个以n为参数的回调函数factor。
  • factor函数生成一个长度为n的模式。
  • 创建一个测试函数,它接受一个回调函数和n。
  • 测试函数检查n的值是否等于0。
  • 如果n等于0,则返回终止测试函数,否则调用回调函数打印模式。

示例: 这个示例使用了上述方法。

<script> 
    // callback function that print pattern 
    function factor(n) { 
      // base case for recursion 
      if (n <= 1) { 
        console.log("0" + n); 
        return; 
      } 
      // string to store patterns 
      let str = ""; 
      // loop for generate pattern 
      for (let i = 1; i <= n; i++) { 
        str += `0${i} `; 
      } 
      // printing patterns 
      console.log(str); 
      
      // recursion call with decrement by 1 
      return factor(n - 1); 
    } 
      
    // function to run callback function 
    function test(n, callback) { 
      if (n == 0) { 
        console.log("please provide value n greater than 0"); 
        return; 
      } 
      
      let k = n; 
      //calling callback function 
      callback(k); 
    } 
      
    // initialising test number 
    let t_number = 4; 
    // calling main function to call callback function 
    test(t_number, factor); 
</script>

输出:

01 02 03 04
01 02 03
01 02
01

方法2

我们使用循环语句来迭代回调函数。

  • 首先,我们创建一个回调函数factor,用来生成数字的阶乘。
  • 创建一个带有参数n和回调函数的测试函数。
  • 检查n的值是否有效,如果无效则终止,否则继续。
  • 创建一个范围为n的for循环。
  • 在每一次循环中调用回调函数,打印出每个数字的阶乘。

示例: 该示例描述了上述解释的方法。

<script> 
    // call back function that return factorial 
    function factor(number) { 
      let j = 1; 
      // loop that generate factorial of number 
      for (let i = 1; i <= number; i++) { 
        j *= i; 
      } 
      // printing value of factorial 
      console.log(`factorial of ${number} is `); 
      console.log(j); 
    } 
      
    // function that iterate over callback function 
    function test(n, callback) { 
      if (n <= 0) { 
        console.log("invalid number"); 
        return; 
      } 
      let k = n; 
      // iterating over callback function with for loop 
      for (let i = k; i >= 1; i--) callback(i); 
    } 
      
    // initialising test variable 
    let t_umber = 5; 
    // main function calling 
    test(t_umber, factor); 
</script>

输出:

factorial of 5 is 120
factorial of 4 is 24
factorial of 3 is 6
factorial of 2 is 2 
factorial of 1 is 1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程