2020-09-01 18:31 采纳率: 50%
浏览 650
已采纳

在js for循环中,如何做到延迟效果?

最近在做算法演示动画,但在js中遇到些许问题。

    function playbubbleSort(arr) {

        var len = arr.length;
        for(var i = 0; i < len - 1; i++) {
            for(var j = 0; j < len - 1 - i; j++) {
                if(arr[j] > arr[j+1]) {
                    var temp_left = parseInt(window.getComputedStyle(div_child_obj[j+1],null).getPropertyValue("left"));    
                    div_child_obj[j+1].style.left = window.getComputedStyle(div_child_obj[j],null).getPropertyValue("left");
                    div_child_obj[j].style.left = temp_left+"px";

                    var temp = arr[j+1]; 
                    arr[j+1] = arr[j];
                    arr[j] = temp;

                    let start = (new Date()).getTime();
                    while((new Date()).getTime() - start < 2000){
                        continue;
                    }

                }
            }
        }
        return arr;
    }

我想在if句结尾处写一个延迟,从而实现动画不是一瞬间结束,而是慢慢一步步进行。然而我在结尾处添加的

let start = (new Date()).getTime();
     while((new Date()).getTime() - start < 2000){
             continue;
     }

并不是我所预想的情况,实际运行过程中,是等待 (循环总次数x2) 秒,然后依旧是瞬间结束,请问有啥更好的解决方法吗

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 10月28日

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功