javascript对象键值循环setInterval

时间:2016-03-20 20:45:59

标签: javascript loops

var coords={100: 100, 120: 120, 140: 140, 160:160, 180:180};

for (var key in coords) {
    console.log(key + ' - ' + coords[key]);
}

我有变量coords和for循环打印出这样的数字对:

  

100 - 100

     

120 - 120

     

140 - 140

     

160 - 160

     

180 - 160

我需要setInterval或者其他东西来控制每一对数字。 我尝试添加setInterval,但在这种情况下,代码每秒打印所有数字,而不是单独的对。

1 个答案:

答案 0 :(得分:4)

这个问题有点不清楚,但我认为这就是你要求的。它将打印第一对,等待,打印下一对,等待,等等。

var coords = {/* coords */};
var keys = Object.keys(coords);
var index = 0;

var interval = setInterval(function() {
    console.log(keys[index] + " - " + coords[keys[index]]);
    index++;
    if(index == keys.length) {
        clearInterval(interval);
    }
}, 3000);

作为旁注,the order of values in Javascript objects are not guaranteed。如果打印坐标的顺序很重要,或者即使coordinates实际上表示坐标列表,最好使coordinates成为一组数字而不是一个对象。此外,对象的键被转换为字符串,这是你不想要的数字坐标。