gpt4 book ai didi

javascript - 创建循环 SetTimeOut Jquery 数组

转载 作者:行者123 更新时间:2023-12-03 11:04:00 26 4
gpt4 key购买 nike

我正在尝试在控制台日志浏览器中使用 setTimeout 创建循环。但它不起作用。我尝试搜索但没有找到我需要的东西。基本上,在这个 printa 5 秒的后期更新中,每个循环都会有 5 秒的间隔。必须将数组带入循环中。

var myArray1 = new Array( "orange", "blue", "white" );

for (var i = 0; i <= myArray1.length; i++) {

console.log("This fruit" + myArray1[i] + "is delcious!");

setTimeout(function(){ alert() }, 500); //AFTER FIVE SECONDS

setTimeout(function(){
} //CLOSE FOR
}, 5000); //AFTER FIVE SECONDS

让我举一个我使用过的例子,它可以工作,但是代码太大了。我想要一种更好地理解循环的方法。

var myArray1 = new Array( "orange", "blue", "white" );
var var_time = 7000;

setTimeout(function(){
console.log("Fruit is " + myArray1[0]);
console.log("...stage 1 loading");


setTimeout(function(){
console.log("Fruit is " + myArray1[1]);
console.log( "...stage 2 loading");

setTimeout(function(){
console.log("Fruit is " + myArray1[2]);
console.log( "stage 2 finish");

alert();

console.log( "You code run perfect");

}, var_time); //stage 2
}, var_time); //stage 1
}, 500); //stage 0

最佳答案

不漂亮,但简单。

var fruitColors = ["orange", "blue", "white"];

function showColor(index) {
if (index < fruitColors.length) {
console.log("Fruit is " + fruitColors[index]);
setTimeout(function() { showColor(index+1); }, 500);
}
}

setTimeout(function() { showColor(0); }, 500);

一个更漂亮但更复杂的方法是:

var fruitColors = ["orange", "blue", "white"];

fruitColors.reverse().reduce(function(m,c) {
return function() {
console.log("Fruit is " + c);
setTimeout(m, 500);
};
}, function() {})();

您可以阅读 reduce here (MDN) .

关于javascript - 创建循环 SetTimeOut Jquery 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27947485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com