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

如何在JS map函数分组逻辑中统计分组内的唯一ID数量

实现方法

你可以直接借助 Lodash 内置的去重方法统计每个分组下的唯一ID数量,修改后的代码如下:

const groupedArray = _(allInteractions)
  .groupBy(v => moment(v.InteractionDate).format('MM/YYYY'))
  .map((item, date) => ({
    interactionDate: date,
    totalSec: _.sumBy(item, 'Time'),
    uniqueIDs: _.uniqBy(item, 'ID').length
  }))
  .value();

逻辑说明

  • _.uniqBy(item, 'ID') 会对当前月份分组下的所有记录,按ID字段做去重处理,返回ID不重复的记录集合
  • 取该集合的length属性,就是当前分组下唯一ID的总数量,和你给出的示例预期结果完全匹配:示例中07/2022分组去重后共3个不同ID,Time求和结果为93。

如果追求更优性能(不需要保留去重后的完整记录),也可以先提取所有ID再去重计数,写法效果完全一致:

uniqueIDs: _.uniq(item.map(record => record.ID)).length

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:48:18