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

如何按对象的itemId特性将数据分组存入不同数组以开展后续计算

实现方案

推荐优先用对象映射做分组,比预先声明多个ItemN变量灵活性更高,完全适配动态变化的数组场景,实现代码如下:

const data = [
  // 你的原始数据
  { itemId: "Las5241Wz", time: 10 },
  { itemId:"Bos1239Zf", time: 11 },
  { itemId:"Las5241Wz", time: 15 },
  { itemId:"Bos1239Zf", time: 21 }
]

// 按itemId分组核心逻辑
const groupedMap = data.reduce((result, item) => {
  // 不存在对应id的数组则初始化
  if (!result[item.itemId]) result[item.itemId] = []
  result[item.itemId].push(item)
  return result
}, {})

常用操作示例

  • 获取指定id的所有条目:直接通过id索引即可,比如groupedMap["Las5241Wz"]
  • 累加指定id的time字段值:
    const totalTime = groupedMap["Las5241Wz"].reduce((sum, entry) => sum + entry.time, 0)
    

转换为你需要的ItemN变量格式

如果确实需要拆分命名为Item1、Item2的独立变量,可以基于分组结果转换:

// 按id出现顺序拿到所有分组数组
const groupedList = Object.values(groupedMap)
const Item1 = groupedList[0]
const Item2 = groupedList[1]
// 更多id以此类推取groupedList[n]即可

这个方案的时间复杂度为O(n),即使你的数组有上千条条目也能快速处理,完全满足你提到的单id最多16个对象的业务场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:36:04