gpt4 book ai didi

javascript - 如何在每个 FOR 循环步骤之后运行函数

转载 作者:行者123 更新时间:2023-11-28 19:24:28 25 4
gpt4 key购买 nike

我需要将对象从数组pts一一传输到数组test,每次之后我需要使用数组test调用函数mimicSvg

我尝试一切:

var test=[{"X":"300","Y":"400"}];
setTimeout(function () {
for(var m=1;m<25;m++){
var q = pts[m].X;
var e = pts[m].Y;
console.log(test);
test.push({"X":q,"Y":e});
mimicSvg(test,1);

}
}, 1000);

还有这个:

var test=[{"X":"300","Y":"400"}];
for(var m=1;m<pts.length;m++){

var q = pts[m].X;
var e = pts[m].Y;
console.log(test);
test.push({"X":q,"Y":e});
alert(m);
setInterval(mimicSvg, 2000, test, 1);

}

还有这个:

setTimeout( "mimicSvg(test,1);test.push({"X":q,"Y":e});",m*3000 );

和这个类似:

setTimeout(function() {mimicSvg(test,1); test.push({"X":q,"Y":e});},m*3000 );

但我无法在每次传输后运行函数...我的控制台看起来像这样: enter image description here

和:enter image description here

我很困惑...我哪里错了?为什么我无法得到这样的测试:

after 1. loop array[1] -> run function with this array
after 2nd loop array[2] -> run function ...
etc....

最佳答案

已编辑试试这个:

var set_time;
var m = 0;
var add_array = function(){
if(m < pts.length){
var q = pts[m].X;
var e = pts[m].Y;
console.log(test);
test.push({"X":q,"Y":e});
mimicSvg(test,1);
m++;
set_time = setTimeout(add_array,1000);//it call itself again and again until m is more than the length of the array'
}
}
set_time = setTimeout(add_array,1000);

我认为你的问题是for立即运行所有数组的函数。
我想您想每 1 秒运行一次该函数,这就是解决方案。
它被称为“Rucursion”,该函数将调用自身,直到 m 大于数组的长度( if(m < pts.length) )。
如果这不是您想要的,请向我解释更多细节。
希望它有帮助:)

关于javascript - 如何在每个 FOR 循环步骤之后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28142424/

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