Given a callback function, we have to iterate over a callback n times. The callback is a function that is passed as an argument. To iterate over the callback function, we have to run the callback function n time.
Approach 1: We use recursion to iterate the n times callback function.
- First, create a callback function factor that takes n as an argument.
- The factor function generates a pattern of n length.
- Create a test function that takes a callback function and n.
- The test function checks the value of n is equal to 0 and not.
- If n is 0 it returns the terminate test function, else it calls the callback function which prints the pattern.
Example: This example uses the above approach.
Javascript
<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> |
Output:
01 02 03 04 01 02 03 01 02 01
Approach 2: We use a loop statement to iterate over the callback.
- First, we create a callback function factor which generates a factorial of numbers.
- Create a test function with argument n and a callback function.
- Check the value of n if it is invalid terminate if not continue.
- Create for loop with range n.
- On each loop call the callback function which prints the factorial of each number.
Example: This example describes the above explained approach.
Javascript
<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> |
Output:
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