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

如何去除美元符号与逗号后计算客户平均余额?

修复客户平均余额计算问题

原代码存在几个关键问题,导致无法正确计算平均余额:

  • 函数参数是array,但内部错误使用了全局变量customers,应该用传入的参数
  • hasOwnProperty(balance)中balance未加引号,会被当作变量解析,应该改为hasOwnProperty('balance')
  • 替换美元符号和逗号后得到的是字符串,直接累加会变成字符串拼接,需要转为数字
  • 当客户没有balance字段时,函数未返回原累加值total,会导致reduce中途出现undefined,破坏累加流程
  • 计算平均时,应该除以存在balance字段的客户数量,而非整个数组的长度

修复后的代码如下:

var averageBalance = function(customers) {
    const result = _.reduce(customers, function(acc, current) {
        if (current.hasOwnProperty('balance')) {
            // 去除符号并转为数字后累加,同时统计有效客户数
            acc.sum += Number(current.balance.replace(/[$,]/g, ''));
            acc.count++;
        }
        return acc;
    }, { sum: 0, count: 0 });

    // 避免出现除以0的异常情况
    return result.count > 0 ? result.sum / result.count : 0;
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:40:28