Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida - leitura e interpretação do código

Pessoal, comentei algumas duvidas no código. Não sei dizer se as duvidas que eu estou tendo são duvidas de interpretação ou de lógica. Mas, peço que me ajudem...

    function desenhaBarra(x, y, serie, cores, texto) { // até aqui, tudo bem...

        desenhaTexto(x, y - 10, texto); //foi chamada uma função, dentro da função desenhaBarra()

        var somaAltura = 0; //aqui, é declarada a variavel que representará a altura dos blocos.
        for (var i = 0; i < serie.length; i++) { //extrutura para o laço, ok...
            var altura = serie[i]; // altura, recebe serie[indice]... de onde vem isso!?
            desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]); //ok, cores está declarado ali em baixo do loop.
            somaAltura = somaAltura + altura; //incremento para somaAltura? blz, mas de onde vem a altura mesmo???
        }
    }
    //porque essas váriaveis estão declaradas fora do bloco?
    //e porque no fim do código e não no começo?
    var cores = ['blue','green','yellow', 'red'];
    var serie2015 = [50,25,20,5];  
    var serie2016 = [65,20,13,2]; //ali no loop, foi usado apenas, serie[i] e não serie20xx...

    desenhaBarra(150, 50, serie2016, cores, '2016'); //serie[i] é usada aqui??? quando passamos a 
    desenhaBarra(50, 50, serie2015, cores, '2015');  // array na chamada da função????

</script>
3 respostas
solução!

(serie) é um array que você vai passar como parâmetro quando executar a função 'desenhaBarra'. No for, para cada elemento desse array, ele vai buscar na posição 'i' que vem da variável criada no for, que é o índice do array. Ou seja, o array tem 5 elementos, o 'i' será 0, 1, 2, 3, 4

A altura vem dos elementos do array que você passa como parâmetro, dentro do for.

as variáveis estão sendo declaradas depois do código apenas por opção mesmo. Porque no lugar de passar os arrays dentro da execução da função, ele criou variáveis com os valores e passou apenas os nomes das variáveis. Digamos que seria uma maneira mais limpa de escrever o código. Ele podia escrever no início do código. Mas ele só vai usar as variáveis no final, no caso, quando executa a função 'desenhaBarra', por isso decidiu escrever no final.

serie[i] vai ser usado apenas dentro do for porque usa a variável que está criando dentro do for

exemplo

const array  = [10, 15, 22, 36, 47]

for(var i = 0; i < array.length; i++) {
    console.log(array[i])
}

resultado: 10 25 22 36 47

O i começa com valor 0. E pra cada elemento de array, ele recebe ele mesmo + 1.. no caso --> 0, 0 + 1, 1 + 1, 2 + 1, 3 + 1 Aí no console mostra todos os elementos do array, nessas respectivas posições.

Acho que é isso mais ou menos a sua dúvida e tals.

Perfeito. Entendi a sua explicação. Obrigado pela atenção!

olá Fernando, eu também tinha um pouco de dificuldade para compreender os códigos e o que me ajudou bastante foi o livro " lógica de programação e algoritmos com JavaScript ", ele é um bom livro para quem esta começando a programar.