Требуется много исправлений.Найдите встроенные комментарии ниже:
var colors = ['green', 'red', 'blue', 'grey', 'orange'];
function chColor(){
setInterval(
function(){ // do not pass colors in the method here, global colors should be used.
for(var i = 0; i < colors.length; i++){ // i should be < colors.length, it's 0 indexed.
console.log(colors[i])// should be colors[i] not Colors[i]
}},1000)}
(function(){setTimeout(chColor,1000);})(); // don't really need to make a blank function and call chColor, passing the function name will do. it's a callback
Попробуйте запустить фрагмент.
PS: в этом примере время сократилось до 1 с.
Редактировать : Если вы хотитеизменить цвет каждые n секунд:
var colors = ['green', 'red', 'blue', 'grey', 'orange'];
function chColor(){
var i = 0;
setInterval(function(){
document.body.style.backgroundColor = colors[i];
i = (i+1) % colors.length; // increment i and cycle through loop
},1000)
}
(function(){setTimeout(chColor,1000);})();