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

如何用JavaScript实现无硬编码的出租车阶梯计费功能

实现动态计算出租车费用的JavaScript方案

你可以通过提取规则参数+数学计算的方式替代硬编码分支,这样不仅更灵活,后续调整规则(比如基础时长、加价幅度)也不用改逻辑代码。

核心逻辑拆解

  • 基础规则:时长≤180秒时,费用固定为500便士
  • 超出部分:每满60秒(不足60秒也按一个区间算)额外加70便士,比如181-240秒加70,241-300秒加140,以此类推

实现代码

function calculateTaxiFare(seconds) {
    // 把规则参数单独提取出来,方便后续修改
    const baseDuration = 180;
    const baseFare = 500;
    const interval = 60;
    const extraPerInterval = 70;

    if (seconds <= baseDuration) {
        return baseFare;
    }

    // 计算超出基础时长的秒数
    const extraSeconds = seconds - baseDuration;
    // 计算需要加价的区间数(向上取整,不足60秒也算一个区间)
    const extraIntervals = Math.ceil(extraSeconds / interval);
    
    return baseFare + extraIntervals * extraPerInterval;
}

// 测试用例
console.log(calculateTaxiFare(179)); // 输出500
console.log(calculateTaxiFare(240)); // 输出570(符合示例)
console.log(calculateTaxiFare(245)); // 输出640(符合原代码分支逻辑)
console.log(calculateTaxiFare(300)); // 输出640(符合示例)

为什么这样写

  • 所有规则参数都放在函数开头,后续如果要调整基础时长、加价金额,直接改参数就行,不用动判断逻辑
  • 使用Math.ceil处理超出部分的区间计算,自动覆盖所有时长情况,不用写一堆if-else分支

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:35:19