在FOR - JS开始新循环之前等待

时间:2015-12-05 13:08:00

标签: javascript jquery arrays

我先让你看看我得到了什么:

CODE

我决定尝试并制作一个脚本,以一种可能的方式对数组中的数字进行排序。

我做的第一种方式是"Selection mode",您可以在其中找到数组的较低值并将其放在第一个位置。正如你所看到的,我把它打印成一张桌子让它变得更有趣,但是这里有我的问题,我想在每个循环结束时加一个延迟,在那里我强调我要交换的值,但是由于某种原因,它只是组织所有表格,然后渲染它而不是一步一步地进行。

现在我要继续解释一下我的代码^^ u:

如果您点击"重新启动"如果你点击"选择"你会得到一堆新的随机数字。数组将被订购。

功能:

  • generate:生成i个数字,其值从0j
  • prinTable:打印表格。
  • renderDots:在与数组值匹配的点处添加样式。
  • seleccion:执行"选择"组织阵列的方法。
  • highlight:在 THIS 循环处添加点的样式,并删除其他点的突出显示样式。

我想得到这样的影响:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用setInterval函数代替for循环:

function seleccion(table){
  var ordenados = 0;
  var timer = setInterval(renderOneStep, 300)

  function renderOneStep(){
    if (ordenados < table.length){

      // do all the calculations

      ordenados++;
    } else {
      clearInterval(timer);
    }
  }
}

renderOneStep函数更新一列。它每300毫秒调用一次。

请参阅更新后的jsfiddle