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

Qual é o erro do meu código?

Não sei exatamente o que estou fazendo errado, mas não aparece retângulo nenhum

<canvas width="600" height="400"></canvas>

<script>

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

    function desenhaRetangulo(x, y, largura, altura, cor) {
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');

        pincel.fillStyle=cor;
        pincel.fillRect(x,y, largura, altura);
        pincel.strokeStyle='black';
        pincel.strokeRect(x,y, largura, altura);
    }

    function desenhaTexto(x, y, texto) {
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');

        pincel.font='15px Georgia';
        pincel.fillStyle='black';
        pincel.fillText(texto, x, y);    
    }

    function desenhaBarra(x, y, serie, cores, texto) {
        desenhaTexto(x, y - 10, texto);

        var largura = 50;
        var somaAltura = 0;
        for (var i = 0; i <= serie.lenght; i++) {    
            var altura = serie[i];
            var cor = cores[i];
            desenhaRetangulo(x, y + somaAltura, largura, altura, cor);
            somaAltura = somaAltura + altura;
        }    
    }


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

</script>

Alguém pode me dizer qual é o erro?

2 respostas
solução!

Boa noite, Pedro! Como vai?

Dentro da função desenhaBarra() vc escreveu serie.lenght quando o correto é serie.length.

Só fazer essa alteração que seu código irá funcionar como esperado!

Grande abraço e bons estudos!

E aí, Pedro Hernrique! Boa noite!

Dentro da função desenhaBarra(), no loop

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

Há dois erros:

1º) O sinal não é <=, e sim, somente o sinal de <

2º ) Você escreveu serie.lenght, mas o correto é serie.length

Segue a foma correta, logo abaixo:

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software