我有以下代码:const timers = []const timer1 = setTimeout(() => {console.log('Starting timer2')const timer2 = setTimeout(() => { console.log('Its works')}, 10000)timers.push({key:2, id:timer2})}, 10000);timers.push({key:1, id:timer1})function remove(key) { for (i = 0; i > timers.length; i++) { if (timers[i].key === key) { timers = timers.slice(i, 1) clearTimeout(timers[i].id) } }}当我调用 remove(key) 函数时,代码没有按预期删除计时器
1 回答

狐的传说
TA贡献1804条经验 获得超3个赞
const timers = []
const timer1 = setTimeout(() => {
console.log('Starting timer2')
const timer2 = setTimeout(() => {
console.log('Its works')
}, 10000)
timers.push({key:2, id:timer2})
}, 10000);
timers.push({key:1, id:timer1})
function remove(key) {
const timer = timers.find(f => f.key === key);
if (timer) {
clearTimeout(timer.id);
}
}
添加回答
举报
0/150
提交
取消