我想用 for 创建一个简单的迭代数组。但无法使该脚本工作...如果有人可以指导自学,我很感激任何想法!
var colors = ['green', 'red', 'blue', 'grey', 'orange'];
function chColor(){
setInterval(
function(colors){
for(var i = 0; i <= colors.lenght; i++){
document.body.style.backgroundColor = Colors[i];
}},3000)}
(function(){setTimeout(function(){chColor()},3000);})();
最佳答案
您可以获取颜色索引并在每个间隔后递增,并使用余数运算符和数组长度进行调整。
您的问题:
带有参数的函数的间隔,该参数永远不会被移交,因此它是
未定义
。for
区间内的循环,直接迭代并在最后使用使用的数组
Colors
不存在。 JavaScript 是区分大小写的语言。由于
for
循环,如果采用正确的数组,最终颜色始终相同。setTimeout
的使用不明确,它将chColor
的调用推迟了 3 秒。第一次颜色变化是 3 秒后......
function chColor(colors, i) {
setInterval(
function() {
document.body.style.backgroundColor = colors[i];
i++;
i %= colors.length;
},
3000
);
}
var colors = ['green', 'red', 'blue', 'grey', 'orange'];
chColor(colors, 0); // take colors as array and start with index zero
关于javascript - SetInterval 和 SetTimeout 迭代数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51010777/