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