Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida com as cores dentro do código de barras

Olá, Minha dúvida e a seguinte se os parâmetros das cores nunca e colocado dentro do loop for no código, como o código sabe qual ele debe se usar com os parâmetros de tamanho e coincidir na barra.?

function desenhaBarra(x, y, serie, cores, texto) {

    desenhaTexto(x, y - 10, texto);

    var somaAltura = 0;
    for (var i = 0; i < serie.length; i++) {
        var altura = serie[i];
        desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]);  // ------>  cores aqui minha dúvida
        somaAltura = somaAltura + altura;
    }
}

var cores = ['blue','green','yellow', 'red'];
var serie2015 = [50,25,20,5];
var serie2016 = [65,20,13,2];

desenhaBarra(50, 50, serie2015, cores, '2015');
desenhaBarra(150, 50, serie2016, cores, '2016');

1 resposta
solução!

Olá

Como as cores são um array, isso significa que existem varias posições

Ex.:

'blue' -> posição 0 'green' -> posição 1 'yellow' -> posição 2 'red' -> posição 3

Lembrando que um array sempre começa na posição zero (0)

No seu for

for (var i = 0; i < serie.length; i++) {
        ....
        desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]);  // ------>  cores aqui minha dúvida
        ....
    }

Ele utiliza cores[i], podemos ler da seguinte forma

Pega a cor no indexe de valor i

Se na primeira passagem do seu for, o i** tiver o valor de **0, então, logo temos que a cor será a 'blue'. Na próxima passagem com o valor de i** valendo **1, a cor vai ser 'green'

Assim ele pega a cor para a utilização, através do incremento do valor da variável i