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

JavaScript中如何让两个独立条件的if语句同时执行

问题排查

你写的农场添加判断逻辑放在了全局作用域,这段代码仅会在页面首次加载时执行1次。页面初始化阶段bananaCount初始值为0,不可能满足大于10000的触发条件;后续点击香蕉修改计数时,全局作用域的代码不会重新执行,自然永远触发不了加农场的逻辑。
另外你现有代码还有两个隐藏bug:

  • 金香蕉升级逻辑没有加触发标记,只要计数超过10000,每次点击都会重复修改UI、重复执行countByTwo(3),会导致点击增量异常
  • addFarm函数每次调用都会新建一个循环计时器,后续如果新增更多农场,会出现多个计时器同时叠加计数的问题,产出数值会错乱
修复方案

把农场触发判断移到bananaClick函数内部,在每次点击更新完香蕉计数后统一做条件检查,两个独立逻辑各自绑定标记位保证只触发一次,同时修复上述隐藏bug:

var addFarm1 = false;
var isGoldenUnlocked = false; // 金香蕉升级触发标记
var farmTimer = null; // 存储农场计时器ID,避免重复创建
// 注意提前初始化你用到的全局变量,避免未定义报错
var bananaCount = 0;
var farmCount = 0;
var farmIncrement = 0;

function countByTwo(num1) {
    for (let i = 0; i < num1; i++) {
        bananaCount += 2;
    }
    return bananaCount;
}

function addFarm(farmAdd) {
    farmCount = farmCount + farmAdd;
    farmCountText.textContent = farmCount;
    farmIncrementText.classList.remove('hidden');

    farmIncrement = farmCount * 5;
    farmIncrementText.textContent = '+' + farmIncrement;

    // 新增农场/升级农场产出前先清除旧计时器,避免多计时器叠加
    if (farmTimer) clearInterval(farmTimer);
    farmTimer = setInterval(function() {
        bananaCount += farmIncrement;
        bananaCountText.textContent = bananaCount;
    }, 1000);
}

function bananaClick() {
    // 金香蕉解锁后每次点击固定加15,未解锁加1,不需要重复调用countByTwo
    bananaCount += isGoldenUnlocked ? 15 : 1;

    // 金香蕉升级触发判断
    if (bananaCount >= 10000 && !isGoldenUnlocked) {
        bananaClicked.textContent = 'Golden Banana Bunch (+15)';
        banana.src = 'images/banana6.png';
        isGoldenUnlocked = true;
    }

    // 免费农场奖励触发判断,移到点击函数内每次更新计数后检查
    if (bananaCount >= 10000 && !addFarm1) {
        addFarm(1);
        addFarm1 = true;
    }

    bananaCountText.textContent = bananaCount;
}

修复说明

  • 两个触发逻辑现在都在点击流程内,计数达到阈值后会依次执行,不会出现某一个不触发的问题
  • 两个逻辑独立绑定标记位,触发一次后就会锁定,不会出现后续点击重复执行的问题
  • 把原逻辑里bananaCount > 10000改成>= 10000,刚好攒到10000的时候就能触发升级,不需要多攒1个
  • 优化了点击增量逻辑,避免原代码每次点击重复调用countByTwo导致的数值异常
  • 修复了农场计时器重复创建的问题,后续新增更多农场升级时,直接调用addFarm传入新增数量即可自动更新每秒产出,不会出现计数错乱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:48:22