javascript - 获取setInterval以基于数组执行操作一定次数

标签 javascript

我试图通过setInterval()每10毫秒遍历数组中的值。

但是,由于计算机无法快速处理迭代,因此我的clearInterval()实际上清除了数组完全迭代之前的时间间隔。

下面仅是我正在执行的示例,而不是实际代码,它占用更多的CPU资源。

我如何修复代码,以便无论CPU性能如何,都将其循环进行到底?

var blah = ['a','b','c'];
i=0;

int = setInterval(function(){   
    console.log(blah[i]);
    i++;
},10);

timeout = setTimeout(function(){
    clearInterval(int);
}, blah.length * 10);

最佳答案

用这个

var blah = ['a','b','c'];
var i=0;

var intervalId = setInterval(function(){   
    console.log(blah[i]);
    i++;
    if(i==blah.length){ // i== 3 all array elements processed. then clear interval
      clearInterval(intervalId );
    }
},10);


工作示例http://jsfiddle.net/B8ya3/

关于javascript - 获取setInterval以基于数组执行操作一定次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16300098/

相关文章:

javascript - readline rl.write 是如何工作的?

javascript - 找到对象值之间的平均值以用作 Javascript 中另一个对象键的值

javascript - 运行时设置 puppeteer 窗口大小而不是 headless (不是视口(viewport))

javascript - NodeJS-我的方法无法执行

javascript - 为什么我在 Jest 中得到 "TextEncoder is not defined"?

javascript - 让视频在鼠标移动的方向上播放

javascript - php中没有加载Javascript

javascript - Firefox 扩展 : How to run function on every video change on YouTube

javascript - 如何全屏打开目标="_blank"?

javascript - 将事件存储在数组中