You are currently viewing Как повторить обратный вызов n раз в JavaScript ?

Как повторить обратный вызов n раз в JavaScript ?

Учитывая функцию обратного вызова, мы должны повторить обратный вызов 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