Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
5
respuestas

¿Cómo funciona?

function dibujarBarra(x, y, serie, colores, texto) {

    //Aquí necesitamos escribir el texto y dibujar los rectángulos
    escribirTexto(x, y-10, texto);

    var sumaAltura = 0;

    for (var i = 0; i < serie.length; i++) {

        var alturaSerie = serie[i];
        dibujarRectangulo(x, y + sumaAltura, 50, alturaSerie, colores[i]);
        sumaAltura += alturaSerie;
    }
}

Mi duda es: sabiendo que el parámetro colores es un array, no logro entender como funciona al momento de pasarlo a la función dibujarRectangulo(x, y + sumaAltura, 50, alturaSerie, colores[i]); ya que en ningún momento se lo esta recorriendo? Espero que mi pregunta se entienda y tenga una respuesta.

5 respuestas

Facundo claro que si se esta recorriendo, para eso esta el ciclo for:

for (var i = 0; i < serie.length; i++) {

        var alturaSerie = serie[i];
        dibujarRectangulo(x, y + sumaAltura, 50, alturaSerie, colores[i]); // esto sucede tantas veces como tenga elementos serie
        sumaAltura += alturaSerie;
    }

No se supone que para mostrar los valores de un array es necesario recorrerlo? por eso mi duda colores[i]... de donde sale o como funciona la lógica de esto?

solución!

i es la variable de control del for, un for es un ciclo repetitivo, por lo que se supone:

    var serie2009 = [6, 47, 41, 3, 3];
    var serie2019 = [81, 9, 3, 3, 4];
   var colores = ["blue","green","yellow", "red","gray"];

Cuando se invoca:

dibujarBarra(50, 50, serie2009, colores, "2009");

function dibujarBarra(x, y, serie, colores, texto) { // acá serie =serie20119

        escribirTexto(x, y - 10, texto);

        var sumaAltura = 0;
        for (var i = 0; i < serie.length; i++) { // serie.length=5 por lo que el ciclo se repite dese i=0 hasta i=4
            var altura = serie[i];
            dibujarRectangulo(x, y + sumaAltura, 50, altura, colores[i]); // cuando i=0 colores[i]="blue" y así sucesivamente. con i=1,2,3,4
            sumaAltura = sumaAltura + altura;
        }
    }

Gracias, por la explicacion logre entenderlo perfectamente muchas gracias.

Ok. Entonces dale Solución