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

如何将扁平数组数据按id分组转换为适配UI组件库的结构化格式?

扁平数组按id分组转换实现方案

直接使用哈希表分组的方案即可完成转换,时间复杂度为O(n),适合各类数据量场景:

function transformData(rawData) {
  // 初始化分组映射表
  const groupMap = {}
  rawData.forEach(item => {
    const { id, time, value } = item
    // 不存在对应id的分组则先初始化
    if (!groupMap[id]) {
      groupMap[id] = { id, data: [] }
    }
    // 仅保留需要的time、value字段存入data数组
    groupMap[id].data.push({ time, value })
  })
  // 将映射表转为数组格式返回
  return Object.values(groupMap)
}

调用示例

假设你提供的原始数组存放在rawData变量中,直接调用函数即可得到目标结构:

const targetData = transformData(rawData)

补充说明

  • 如果需要对最终输出的数组按id排序,可以对返回的Object.values(groupMap)增加排序逻辑,示例:
    // 按id字典序排序示例
    return Object.values(groupMap).sort((a, b) => a.id.localeCompare(b.id))
    
  • 该实现会自动忽略原始数据中table等不需要的字段,符合需求要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:24:03