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

如何用jQuery计算client属性为BC的JSON对象SUM值总和?

当然可以实现!我来结合你提供的数据集,一步步拆解怎么做:

核心思路说明

要完成这个需求,关键要解决两个点:

  1. 筛选出所有client属性值为BC的JSON对象
  2. 处理SUM字段的格式(它是带千分位逗号的字符串,必须先转成数字才能正确求和)
方法一:遍历直接累加(jQuery风格)

用jQuery的$.each方法遍历数据集,边遍历边筛选和累加:

// 你的原始JSON数据集
const data = [
  { client: "BC", users: "PHIL", levels: "EAST", SUM: "32,600.00" },
  { client: "BC", users: "PHIL", levels: "EAST", SUM: "12,600.00" },
  { client: "AQ", users: "PHIL", levels: "WEST", SUM: "20,600.00" },
  { client: "AQ", users: "PHIL", levels: "WEST", SUM: "16,600.00" }
];

let totalSum = 0;

// 用jQuery的each方法遍历数组
$.each(data, function(index, item) {
  // 只处理client为BC的项
  if (item.client === "BC") {
    // 去掉SUM里的逗号,转成浮点数
    const num = parseFloat(item.SUM.replace(/,/g, ''));
    // 累加到总和
    totalSum += num;
  }
});

// 可选:把结果格式回带千分位的字符串
const formattedTotal = totalSum.toLocaleString('en-US', {
  minimumFractionDigits: 2,
  maximumFractionDigits: 2
});

console.log(formattedTotal); // 输出:"45,200.00"
console.log(totalSum); // 输出:45200(纯数字)
方法二:先筛选再求和(更直观的分步写法)

如果喜欢分步处理,可以用jQuery的$.grep先筛选出目标数组,再转换求和:

const data = [/* 你的数据集 */];

// 第一步:筛选出client为BC的所有对象
const bcData = $.grep(data, function(item) {
  return item.client === "BC";
});

// 第二步:把每个对象的SUM转成数字
const sumNumbers = $.map(bcData, function(item) {
  return parseFloat(item.SUM.replace(/,/g, ''));
});

// 第三步:用reduce求和
const totalSum = sumNumbers.reduce(function(acc, curr) {
  return acc + curr;
}, 0);

console.log(totalSum.toLocaleString('en-US', { minimumFractionDigits: 2 }));
关键注意事项
  • 一定要处理SUM字段的逗号:直接对带逗号的字符串用parseFloat会得到32(只取到逗号前的部分),所以必须用replace(/,/g, '')去掉所有逗号再转数字。
  • 如果你的SUM字段可能存在空值或者非数字格式,建议加个判断(比如!isNaN(num))再累加,避免出现NaN的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:22:54