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

如何用循环简化JavaScript中的多分支if语句?新手技术求助

简化多分支if的解决方案

先梳理你的代码逻辑:当prestige_plus为n时,对应操作的乘数是n+1——比如prestige_plus=2时乘数是3,prestige_plus=3时乘数是4,以此类推。基于这个规律,完全可以抛弃重复的多分支if,用更简洁的方式实现,甚至可以按需用循环处理扩展场景。

方案1:直接计算乘数(最简洁高效)

不需要循环或多个判断,直接根据prestige_plus的值算出乘数,统一执行操作即可:

prestige_btn.addEventListener('click', function(){
  // 先判断值是否在有效范围内(当前是2-7,后续扩展只需修改这里的数值)
  if(prestige_plus >= 2 && prestige_plus <= 7){
    const multiplier = prestige_plus + 1;
    taxi_pro_sec *= multiplier;
    gartenArbeit_all_five_sec *= multiplier;
    zeitungAustragen *= multiplier;
    mehrLimoStände += multiplier;
  }
});

方案2:用循环批量处理变量(适合后续变量增多的场景)

如果后续要操作的变量越来越多,可以把需要乘的变量存入对象,通过循环批量更新,避免重复写赋值语句:

prestige_btn.addEventListener('click', function(){
  if(prestige_plus >= 2 && prestige_plus <= 7){
    const multiplier = prestige_plus + 1;
    // 把需要乘的变量放到对象里,方便循环处理
    const calcVars = {
      taxi_pro_sec,
      gartenArbeit_all_five_sec,
      zeitungAustragen
    };
    // 循环更新所有需要乘的变量
    for(const key in calcVars){
      calcVars[key] *= multiplier;
    }
    // 将更新后的值同步回原变量
    taxi_pro_sec = calcVars.taxi_pro_sec;
    gartenArbeit_all_five_sec = calcVars.gartenArbeit_all_five_sec;
    zeitungAustragen = calcVars.zeitungAustragen;
    // 单独处理加法的变量
    mehrLimoStände += multiplier;
  }
});

为什么要这么改?

原来的多分支写法重复代码过多,后续新增prestige_plus的取值时,每次都要复制粘贴相似代码,不仅繁琐还容易漏改或写错。上面的两种方式,不管后续扩展到多大的数值范围,只需要调整判断的边界值即可,无需新增重复逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:24:32