【问题标题】:javascript object key-value loop setIntervaljavascript 对象键值循环 setInterval
【发布时间】:2016-03-20 20:45:59
【问题描述】:
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,但在这种情况下,代码每秒打印所有数字,而不是单独的对。

【问题讨论】:

  • 您能告诉我们您是如何尝试在您的代码中使用setInterval 的吗?
  • var coords={100: 100, 120: 120, 140: 140, 160:160, 180:180}; function getCoord() { for (var key in coords) { console.log(key + ' - ' + coords[key]); } } setInterval(getCoord, 1000);
  • 你好。我将 for 循环放在名为 getCoor 的函数中,然后使用 setInterval(getCoord, 1000); 调用它但这不是正确的逻辑

标签: javascript loops


【解决方案1】:

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

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 设为数字对数组而不是对象。此外,对象的键被转换为字符串,这是您不希望使用数字坐标的东西。

【讨论】:

  • 在第二次阅读问题后,我也同意这是实际答案 +1
猜你喜欢
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 2022-01-24
  • 2011-11-06
  • 2017-01-25
相关资源
最近更新 更多