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

如何在TypeScript/JavaScript中按date和serialNumber双参数统计重复值

你之前的代码只使用serialNumber作为统计key,只要把key调整为date + serialNumber的组合值,即可实现双维度分组统计,完整实现如下:

const data = [
    { date: "2021-10-10", serialNumber: "4A6211B92417A7DB" },
    { date: "2021-10-11", serialNumber: "5B6211B92417A7DB" },
    { date: "2021-10-12", serialNumber: "5B6211B92417A7DB" },
    { date: "2021-10-12", serialNumber: "4A6211B92417A7DB" },
    { date: "2021-10-12", serialNumber: "4A6211B92417A7DB" },
    { date: "2021-10-12", serialNumber: "4A6211B92417A7DB" }
];

const countMap = {};
// 遍历原数组统计
data.forEach(item => {
    // 用日期和序列号拼接为唯一key,分隔符选不会出现在两个字段中的字符即可
    const key = `${item.date}|${item.serialNumber}`;
    if (!countMap[key]) {
        countMap[key] = {
            serialNumber: item.serialNumber,
            date: item.date,
            count: 0
        };
    }
    countMap[key].count += 1;
});
// 把统计对象转换为目标数组格式
const solution = Object.values(countMap);

// 如果需要按日期倒序排序可加上这段代码
// solution.sort((a, b) => new Date(b.date) - new Date(a.date));

console.log(solution);

输出结果完全匹配你给出的期望格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:03