1
resposta

Sobre as variáveis serie2015, serie2016, serie[i] e serie.length.

Olá, pessoal!

Estou com algumas dúvida no trecho do código que diz respeito às series 2015 e 2016, serie[i] e serie.length.

Aqui está o trecho:

var serie2015 = [50,25,20,5];
var serie2016 = [65,20,13,2];
[...]
function desenhaBarra(x, y, serie, cores, texto) {
    desenhaTexto(x, y - 10, texto);
    var somaAltura = 0;

    for (var i = 0; i < serie.length; i++) {     //PRIMEIRA DÚVIDA
        var altura = serie[i];                  //SEGUNDA DÚVIDA
        desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]);
        somaAltura = somaAltura + altura;
    }
}
desenhaBarra(50, 50, serie2015, cores, '2015');
desenhaBarra(150, 50, serie2016, cores, '2016');

Minhas dúvidas são:

Primeiro, o serie.length? Como funciona? Sei que se refere ao tamanho (.length) de algo chamado serie. Mas o que é essa serie? O código sabe de alguma forma que estamos nos referindo às variáveis serie2015 e serie2016? Ou nem estamos nos referindo às variáveis?

Segundo, a variável altura recebe a serie[i]. De onde vem "serie[i]"? Provavelmente seja uma alusão às listas(serie2015 e serie2016), por conta do '[i]', correto? Mas como o código sabe que estou me referindo a elas, se não está escrito series2015 e series2016? E por que o console não exibe erro de referência por conta da serie[i]? Me parece que ela não foi definida.

Terceiro, vi em outro post que, na verdade, a referência às variáveis serie2015 e serie2016 ocorrem na chamada da função "desenhaBarra(...,serie2015,...)". Então, se serie.length e serie[i] não se referem às listas? Se referem a que, então?

Agradeço desde já.

Abraço!

1 resposta

Lucas, tudo bom?

Resposta 1: Sim, ele vai saber. Você passou a serie como parâmetro, assim quando você escreve:

desenhaBarra(50, 50, serie2015, cores, '2015');

Quando você colocou serie2015 no método ele sabe que dado ele vai usar.

Resposta 2: Percebeu que serie2015 e serie2016 são listas? Assim, você pode acessar um valor usando o índice (serie[indice]). Na resposta acima você percebeu que serie na verdade vai ser serie2015 e serie2016, que podem ter seu conteúdo acessado da seguinte forma:

serie2015[1]
serie2016[4]

Para você entender melhor, nesse é como se serie2015 ou serie2016 entrasse no lugar da variável serie, elas substituem a variável que está ali.

Resposta 3: Acho que as respostas acima te ajudaram a entender a terceira. Mas ficando claro, sim serie é uma lista assim como as outras duas variáveis que tratamos aqui.