Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Beginner Web en 21 Mayo 2020, 15:39 pm



Título: typscript coding
Publicado por: Beginner Web en 21 Mayo 2020, 15:39 pm
este fragmento me genera un error undefined y es como que el bucle nunca termiinara

no se si este bien pero no se de typescript, tal vez sea mi sintaxys :(

por pantalla muestra el contenido del array pero despues de eso undefined y repite y repite

Código
  1. obtenerPalabraEnIngles() {
  2.    for (var i = 0; this.palabra.palabraIngles.length; i++) {
  3.      console.log(this.palabra.palabraIngles[i]);
  4.    }
  5.  }


Título: Re: typscript coding
Publicado por: MinusFour en 21 Mayo 2020, 15:55 pm
Código
  1. for (var i = 0; this.palabra.palabraIngles.length; i++) {

Los 'for' necesita una condición en la segunda parte de la estructura. Tu tienes this.palabra.palabraIngles.length. Como muy probablemente tu arreglo tenga algo length va a regresar un número mayor a 0. Todo número que no es 0 o NaN es considerado verdadero. La condición termina la ejecución del ciclo cuando el valor que se regresa es un valor falso. Como tu ciclo no modifica la longitud del arreglo, length siempre va a regresar un valor verdadero, lo que significa que el for seguira ejecutandose.

Como estás usando el tipico for para recorrer un arreglo lo que probabalmente pensaste hacer es:

Código
  1. for (var i = 0; i < this.palabra.palabraIngles.length; i++) {

Claro que hay alternativas más sencillas como:

Código
  1. for(let letra of this.palabra.palabraIngles){
  2.   //letra === this.palabra.palabraIngles[i]
  3. }

o

Código
  1. this.palabra.palabraIngles.forEach(function(letra){
  2.    //letra === this.palabra.palabraIngles[i]
  3. });

Edit: Y este no es un error de sintaxis. Los errores de syntaxis tienen que ver con la estructura de los enunciados. En tu caso este simplemente es un error de logica, quizás un error semantico pero muy probablemente un error de escritura.