1
resposta

Fiz de um jeito fácil só para resolver o exercício

Consegui resolver o exercício mas fiz de um jeito bem na pressa impossibilitando o uso em outros arrays sem modificar a função (criando um outro "if" para outros array de dados).

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

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

    function desenhaRetangulo(x, y, largura, altura, cor) {

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

    function desenhaTexto(x, y, texto) {

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


var serie2015 = [50, 25, 20, 5];
var serie2016 = [65, 20, 13, 2];

var cores = ['blue', 'green', 'yellow', 'red'];

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

        desenhaTexto (x, y-25, texto)

      if (serie == serie2015) {
        desenhaRetangulo (x, y, 50,  serie2015 [3] + serie2015 [2] + serie2015 [1] + serie2015 [0], cores [3]);
        desenhaRetangulo (x, y, 50,  serie2015 [2] + serie2015 [1] + serie2015 [0], cores [2]);
        desenhaRetangulo (x, y, 50,  serie2015 [1] + serie2015 [0], cores [1]);
        desenhaRetangulo (x, y, 50,  serie2015 [0], cores [0]);
        ;}

        if (serie == serie2016) {

        desenhaRetangulo (x, y, 50,  serie2016 [3] + serie2016 [2] + serie2016 [1] + serie2016 [0], cores [3]);
        desenhaRetangulo (x, y, 50,  serie2016 [2] + serie2016 [1] + serie2016 [0], cores [2]);
        desenhaRetangulo (x, y, 50,  serie2016 [1] + serie2016 [0], cores [1]);
        desenhaRetangulo (x, y, 50,  serie2016 [0], cores [0]);


       }
    }

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


</script>
1 resposta

Olá Marcel, tudo bem?

Seu código ficou funcional, mas como você mesmo disse acima, ele acaba sendo limitado. Mas isso é algo bom, porque você já consegue interpretar o que escreveu e sabe aonde está as limitações! Existem modos de deixar um código mais simples e mais intuitivo, mas isso é com o tempo, você está indo muito bem! Recomendo dar uma olhada depois na Opinião do Instrutor, para analisar e ver outros modos de escrever um código!

Qualquer duvida é só perguntar! Abraços!!