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

JavaScript如何将二维对象数组按id归类汇总count值为数组

原有代码问题说明

  • reduce初始值用了空数组,没有用哈希对象做中间映射归集同id的count,无法快速匹配重复id
  • 遍历子数组元素时直接赋值新数组[value.xxx],会覆盖之前已存入的count值,没有做追加操作
  • 你代码里用的recommendationItemIdExternal、recommendationItemRating字段和示例数据的id、count不匹配,实际使用时对应替换即可

正确实现代码

// 第一步:遍历二维数组,用哈希对象归集同id的所有count
const tempMap = data.reduce((result, subArray) => {
  subArray.forEach(item => {
    // 首次遇到该id时初始化空数组
    if (!result[item.id]) {
      result[item.id] = []
    }
    // 追加当前count到对应数组
    result[item.id].push(item.count)
  })
  return result
}, {})

// 第二步:将哈希对象转换为目标数组结构
const newData = Object.keys(tempMap).map(id => {
  return {
    id: id,
    count: tempMap[id]
  }
})

如果你的业务字段确实是recommendationItemIdExternal和recommendationItemRating,把上面代码里的item.id替换为item.recommendationItemIdExternal、item.count替换为item.recommendationItemRating即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:21:03