You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript记忆游戏如何在所有卡牌翻转后自动停止计时

问题原因

调用setInterval创建定时任务时没有存储返回的定时器ID,无法在游戏结束时主动终止定时任务,导致计时器持续运行。

修改步骤

  • 1、在全局变量声明区域新增定时器ID存储变量,可放在matchCounter变量声明之后:
let matchCounter=0;
let timerInterval = null; // 新增这行
  • 2、修改time函数中的setInterval调用逻辑,将返回的定时器ID存入全局变量:
    原代码:
setInterval(setTime, 1000);

修改后:

timerInterval = setInterval(setTime, 1000);
  • 3、在游戏结束的判断逻辑中添加清除定时器的代码,找到checkForMatch函数内匹配完成弹SweetAlert的部分,新增清除逻辑:
    原代码:
if(matchCounter==(cards.length/2)){
  Swal.fire({
    title: 'Congratualtions!!!',
    text: 'You finish the game. Thank you for playng.' ,
  })
}

修改后:

if(matchCounter==(cards.length/2)){
  clearInterval(timerInterval); // 新增这行清除定时任务
  Swal.fire({
    title: 'Congratualtions!!!',
    text: 'You finish the game. Thank you for playng.' ,
  })
}

修改完成后,所有卡牌匹配完成时计时器会自动停止在当前时间,不会继续计数。

内容的提问来源于stack exchange,提问作者Vasco Wayne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:15:01