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 - 如何更改 a 元素的子元素的 CSS

javascript - 使用 jquery 和/或 Rails JS 突出显示主题标签和@用户名

javascript - 有什么方法可以使用 Typescript 转换或更改对象的定义吗?

javascript - 在没有 React 的情况下在 TypeScript 中使用 JSX

javascript - AJAX POST 查询失败并显示 UNKNOWN_PROTOCO

javascript - 图片未在 Chrome 中显示

javascript - $location.path() 无法正常工作

javascript - 通过 jquery 失败循环遍历下拉列表中的所有项目的逻辑

javascript - 如何检测 Unicode 字符是否在我的网页上正确显示?

Javascript - 使用闭包增加静态函数变量模拟?