javascript:我如何创建一个缓慢的for...in循环

标签 javascript loops for-in-loop

我正在制作自己的幻灯片。我想遍历一个对象的成员,每次迭代之间有一个明显的停顿。

使用 setInterval,我想出了这个:

for (key in ob) {

setInterval(
    function (){
    console.log("Key:", key);
    console.log("Value:", ob[key]);
    }, 2000

        ) 

}

但是,这是行不通的。它会立即转储键/值对日志,我的期望是每个操作之间会有一个间隔。

如何在每次操作之间暂停进行迭代?

最佳答案

你根本不能那样做。

试试这个:

var keys = Object.keys(ob);
var index = 0;
setInterval( function(){
    console.log( keys[index], ob[keys[index]] );
    index = ( index + 1 ) % keys.length;
}, 2000 );

http://jsfiddle.net/DgAPw/

一个不滚动而是在处理完所有内容后停止的示例:

var keys = Object.keys(ob);
var index = 0;
var timer = setInterval( function(){
    console.log( keys[index], ob[keys[index]] );
    index++;
    if( index >= keys.length ) {
        clearInterval( timer );
    }
}, 2000 );

关于javascript:我如何创建一个缓慢的for...in循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18250668/

相关文章:

javascript - 从对象面 Three.js 中检索纹理贴图坐标

javascript - 循环遍历单元格范围寻找值

javascript - 如何在 Javascript for...in 循环中获取对象键的名称?

javascript - 如何将匿名函数内的变量导出到 JavaScript 的全局范围?

javascript - 使用 JavaScript 从完整路径获取不带 GET 参数的文件名?

javascript - 数组中每 5 个项目,而不是 JavaScript 中的每第 5 个项目

javascript - 使用 for in 循环对象

javascript - 在 Javascript 中推送到 for 内的数组

javascript - 使用 closest 函数查找属性值

c - For 循环卡在 C (cygwin) 中的函数调用中,非常奇怪的行为我无法理解