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