鍍金池/ 問答/HTML/ setInterval實現(xiàn)倒計時

setInterval實現(xiàn)倒計時

用setInterval實現(xiàn)多個倒計時,代碼如下:

//接口返回responseData,timeLeft是接口返回的剩余時間,是一個以秒為單位的整數(shù)
var groupOn = responseData.groupOn
for (let i = 0; i < 2; i++) {
    var timeLeft = groupOn[i].timeLeft
    setInterval(() => {
        timeLeft--
        console.log(timeLeft)
    }, 1000)
    // setInterval(function (timeLeft) {
    //     timeLeft--
    //     // console.log(timeLeft)
    // }, 1000, timeLeft)
}

我想要的效果是setInterval每秒打印兩個timeLeft,比如兩個timeLeft初始值分別為10和20,那么每秒打印一次,值遞減,第一種寫法打印的都是第二個timeLeft的值,第二種寫法分別打印了兩個timeLeft,但是值只遞減了一次,應(yīng)該怎么寫才能實現(xiàn)我想要的效果?感覺是閉包的問題,但還是不知道怎么改寫

回答
編輯回答
生性

var groupOn = [{timeLeft: 10}, {timeLeft: 20}];
setInterval(function(){

for (let i = 0; i < groupOn.length; i++) {
    var timeLeft = groupOn[i].timeLeft--;
    console.log(timeLeft);
}

}, 1000)

2017年8月13日 06:11