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

如何在不新增参数的前提下将JavaScript增减计算函数封装为通用函数

通用增减计算函数实现方案

核心实现思路是复用_by参数的符号位区分操作类型:_by为正数时执行增长逻辑,_by为负数时执行衰减逻辑,计算时取_by的绝对值作为乘除因子,完全不需要新增额外参数,原有功能可100%兼容。

实现代码

const adjustValue = (_from, _by, _min) => {
  const factor = Math.abs(_by);
  return _by > 0 
    ? Math.max(_from * factor, _from + _min)
    : Math.min(_from / factor, _from - _min);
};

用法说明

  • 等价原increase调用:传入正的_by即可,例如adjustValue(200, 1.1, 5) 对应原increase(200, 1.1, 5),返回结果为Math.max(220, 205) = 220
  • 等价原decrease调用:传入负的_by即可,例如adjustValue(200, -1.1, 5) 对应原decrease(200, 1.1, 5),返回结果为Math.min(181.818..., 195) = 181.818...
  • 小于1的乘法场景:如果需要做小于1的乘法计算,直接传入正的小于1的_by即可,边界处理逻辑会正常生效,例如adjustValue(100, 0.25, 10) 会返回Math.max(25, 110) = 110

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:24:03