如何用更简洁的方式在JS中实现最低手续费计算?
简化手续费计算逻辑的方案
你完全可以用Math.max()来简化这段逻辑,核心就是直接取「按比例计算的基础手续费(amount*0.002+30)」和「最低手续费600」两者的最大值,再加上固定附加费即可。另外建议提前算出fixedAddons的最终值,避免每次执行函数时重复计算:
export const calculateFee = (amount) => { const fixedAddons = 437; // 提前计算固定值:80+21+113+87+136=437 const baseFee = amount * 0.002 + 30; return Math.max(baseFee, 600) + fixedAddons; };
另外注意你原代码里的console.log('fee', fee);在if分支中执行时,fee还未被赋值,会打印undefined。如果需要在触发最低手续费限制时打印日志,可以调整成这样:
export const calculateFee = (amount) => { const fixedAddons = 437; const baseFee = amount * 0.002 + 30; const appliedBaseFee = Math.max(baseFee, 600); if (appliedBaseFee === 600) { console.log('已触发最低手续费限制,当前基础手续费为600'); } return appliedBaseFee + fixedAddons; };
内容的提问来源于stack exchange,提问作者ianyoung
相关产品推荐
相关产品推荐

