为了账号安全,请及时绑定邮箱和手机立即绑定

数组里面数字循环倒数!

数组里面数字循环倒数!

杨__羊羊 2018-08-19 13:10:41
我现在只能做到,吧数组里面的数字放到标签里面数字倒数循环,试了一早上都弄不出来!求大神看看,怎么弄!!
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

run = function(num, index){    var $elem = $('.countNum').eq(index);    
    var numMemo = num;    return function() {
        num--;        if (num < 0) {
            num = numMemo;
        }

        $elem.text(num);      
    };
};

大致思路如此。重点就是 run 方法返回的也是一个函数。

如图:

https://img1.sycdn.imooc.com//5ba35f74000106a209070513.jpg



run = function(arr){    var $countNums = $('.countNum');    var arrCopy = arr.slice(0);    return function() {        // var a = []
        
        for (var i = 0, len = arrCopy.length; i < len; i++) {
            arrCopy[i] = arrCopy[i] - 1;            if (arrCopy[i] < 0) {
                arrCopy[i] = arr[i];
            }            // a[i] = arrCopy[i]
            $countNums.eq(i).text(arrCopy[i]);
        }        // console.log(a);
    };
};

https://img1.sycdn.imooc.com//5ba35f8600019d4f12310713.jpg



run = function(arr, done){    var $countNums = $('.countNum');    var len = arr.length;    var arrTemp = [];    for (var i = 0; i < arr.length; i++) {
        arrTemp[i] = 0;
    }    return function() {        // 是否所有的都完成了
        var allOff = true;        for (var i = 0; i < len; i++) {            if (arrTemp[i] <= arr[i]) {                // 只要有一个没完成
                // 那就是false
                allOff = false;

                $countNums.eq(i).text(arr[i]);
                arrTemp[i] = arrTemp[i] + 1;
            }
        }        if (allOff && done) {
            done();
        }
    };
};var runTimer = run([20, 14, 6, 9], function() {    // 都完成后清空定时器
    clearTimeout(timer);
});var timer = setInterval(runTimer, 1000);


查看完整回答
反对 回复 2018-09-20
  • 1 回答
  • 0 关注
  • 677 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信