¿Cómo iterar sobre una devolución de llamada n veces en JavaScript?

Dada una función de devolución de llamada, tenemos que iterar sobre una devolución de llamada n veces. La devolución de llamada es una función que se pasa como argumento. para iterar sobre la función de devolución de llamada, tenemos que ejecutar la función de devolución de llamada n vez.

Enfoque 1: Usamos la recursividad para iterar n veces la función de devolución de llamada.

  • Primero cree un factor de función de devolución de llamada que tome n como argumento.
  • La función factorial genera un patrón de n longitud.
  • Cree una función de prueba que tome la función de devolución de llamada y n.
  • La función de prueba comprueba que el valor de n es igual a 0 y no.
  • Si n es 0, devuelve la función de prueba de finalización; de lo contrario, llama a la función de devolución de llamada que imprime el patrón.

Ejemplo: 

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>

Producción:

01 02 03 04
01 02 03
01 02
01

Enfoque 2: usamos la declaración de bucle para iterar sobre la devolución de llamada. 

  • Primero creamos un factor de función de devolución de llamada que genera un factorial de número.
  • Cree una función de prueba con el argumento n y la función de devolución de llamada.
  • Verifique el valor de n si no es válido, termine si no continúa.
  • Crear bucle for con rango n.
  • En cada bucle, llame a la función de devolución de llamada que imprime el factorial de cada número.

Ejemplo:  

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>

Producción:

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

Publicación traducida automáticamente

Artículo escrito por satyam00so y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *