Учитывая функцию обратного вызова, мы должны повторить обратный вызов n раз. Обратный вызов-это функция, которая передается в качестве аргумента. Для повторения функции обратного вызова мы должны запустить функцию обратного вызова n раз.
Подход 1:
Мы используем рекурсию для повторения функции обратного вызова n раз.
- Сначала создайте фактор функции обратного вызова, который принимает значение n в качестве аргумента.
- Факторная функция генерирует шаблон длиной 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 patter
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:
Мы используем оператор цикла для выполнения итерации по обратному вызову.
- Сначала мы создаем коэффициент функции обратного вызова, который генерирует факториал числа.
- Создайте тестовую функцию с аргументом n и функцией обратного вызова.
- Проверьте значение n, если оно неверно, завершите, если не продолжите.
- Создайте цикл for с диапазоном n.
- На каждом цикле вызова функции обратного вызова, которые выводят факториал каждого числа.
Пример:
<script>
// call back function thar 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("invalide 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