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

如何用JS按区间规则计算返回数值(规避大量分支)

高效实现数值区间计算方案

不用写大量switch case分支,直接通过数学运算就能搞定这个逻辑,核心是提取数值对应的区间系数,再乘以300即可。

实现思路

先拆解规则:

  • 100 < 数值 < 200 → 系数1 → 1×300
  • 200 < 数值 < 300 → 系数2 → 2×300
  • ...
  • N×100 < 数值 < (N+1)×100 → 系数N → N×300

系数N其实就是数值除以100后的整数部分,只需处理好临界值(比如100、200这类边界数)的判断即可。

代码实现

function calculateValue(num) {
  // 处理数值≤100的情况,可根据需求返回0或其他默认值
  if (num <= 100) {
    return 0;
  }
  // 计算对应区间的系数,兼容任意大数
  const coefficient = Math.floor((num - 1) / 100);
  return coefficient * 300;
}

// 测试示例
console.log(calculateValue(120)); // 输出300(1×300)
console.log(calculateValue(230)); // 输出600(2×300)
console.log(calculateValue(1050)); // 输出3000(10×300)
console.log(calculateValue(10001)); // 输出30000(100×300)

逻辑说明

  • (num - 1) / 100:避免临界值(如200)被错误归类,比如200-1=199,除以100后取整为1,符合“大于200才返回2×300”的要求。
  • Math.floor():对正数取整直接得到区间系数,不管数值是10000还是20000,都能一次计算完成,完全不用新增分支。

如果你的需求允许数值等于区间下限(比如100≤数值<200就返回1×300),直接把系数计算改成Math.floor(num / 100)即可,根据实际场景微调就行。

内容的提问来源于stack exchange,提问作者Emad Rashad Muhammed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:35:03