> Faqs > Cómo funciona el for anidado

Cómo funciona el for anidado

let array=[6,4,3]

let arraySuma=[]

function sumaArray (){
  for(let i = 0; i < array.length; i++){
      for(let j = 0; j < array.length; j++){
        arraySuma.push(array[i]-array[j])
      }
      return arraySuma
  }
}

sumaArray(array)
¿Pero qué es lo que quieres saber con ese código?

Respuestas

Un for anidado funciona ejecutándose para cada iteración del bucle padre.

Por tanto, si el for más general, el padre, se ejecuta "n" veces y el for anidado hace "m" iteraciones.:

  • El for padre se ejecuta "n" veces
  • Dentro de cada iteración "n" del padre, se ejecuta "m" veces. Por lo tanto, for anidado se ejecuta n*m veces

Si te refieres a tu código, ya que no has preguntado nada, has copiado y pegado un simple código, te tengo que comentar que tienes toda una serie de despropósitos que me harían sugerirte que te replanteases tu ejercicio por completo, o riñas al profesor que te ha enseñado a hacer eso.

  • Tienes una función que menciona variables del ámbito superior, totalmente desaconsejado.
  • La función devuelve una variable del ámbito superior. Más raro que un perro verde, porque quien te llame ya conoce esa variable, no necesita devolverse
  • La función se invoca pasando un argumento, pero sin embargo no se declara el parámetro de la función
  • La función se llama sumaArray pero no suma nada. ¿Es un despiste, tratas de engañar a alguien o te tratan de engañar a tí?
  • En realidad la función tiene un return después de ejecutarse una vez el bucle anidado, por lo que el bucle "padre", que itera con la "i" solo se ejecuta una vez

Bueno, te sugiero que repases el artículo sobre bucles anidados en Javascript, que tendrás algunos ejemplos un poco más claros.

Juanjo
248 8 18 5