Tentei aplicar o exercício do gráfico em uma outra aplicação, para ver se entendi a lógica do uso de Arrays, mas claramente não peguei o jeito.
Segue o meu código. Como complemento, este código não foi editado no Sublime, mas sim no bloco de notas, e salvei com Encoding UTF-8.
<canvas width = "600" height = "400"> </canvas>
<script>
var tela = document.querySelector ("canvas");
var pincel = tela.getContext ("2d");
function desenhaArco (x,y,raio,cor){
var tela = document.querySelector ("canvas");
var pincel = tela.getContext ("2d");
pincel.fillStyle = cor;
pincel.beginPath ();
pincel.arc (x,y,raio,0,3.14)
pincel.fill ();
}
function desenhaArcoIris (x,y,raio,cor){
var somaRaio = 0 //variável auxiliar
for (var i = 0; i<cor.lenght;i++){
var cor = cor[i]
desenhaArco (x,y,somaRaio,cor[i]);
somaRaio = somaRaio+raio
}
}
var cor = ["white","purple","violet","blue", "green", "yellow", "orange","red"]
desenhaArcoIris (300,200,100,cor);
</script>