El código propuesto en la solucion:
function alterarColor() {
indiceColorActual++;
if(indiceColorActual>= colores.length) {
indiceColorActual = 0; //vuelve para el primer color, blue
}
return false; //menú contextual padrón de `canvas` no sea exhibido
}
Mantiene el color verde durante dos clicks, ya que length tiene un valor de 3 y los indices comienzan a contar desde 0, por lo que el máximo índice va a ser 2 en este caso, haciendo que el verde se repita dos veces antes de reconfigurarse a 0. Más prolijo quizas sería definir una variable arrayLength que contenga colores.length - 1 y hacer la comparación.
Codigo propuesto para arreglarlo:
function alterarColor() {
indiceColorActual++;
if(indiceColorActual>= colores.length) {
indiceColorActual = 0; //vuelve para el primer color, blue
}
return false; //menú contextual padrón de `canvas` no sea exhibido
}
colores = ["blue", "red", "green"]
var arrayLength = colores.length- 1