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

如何按type与code分组数组元素并重构quantity属性?

按type和code分组数组并转换字段结构的实现方案

原始数据(注:原数据存在语法错误,已修正)

const data = [
  {
    "type":"abc",
    "quantity":36,
    "code":"EDF"
  },
  {
    "type":"abc",
    "quantity":40,
    "code":"SFDF"
  },
  {
    "type":"yrf",
    "quantity":22,
    "code":"SFDF"
  },
  {
    "type":"yrf",
    "quantity":19,
    "code":"EDF"
  }
];

需求说明

按type对数组元素分组,将同一type下不同code对应的quantity转换为quantity_{code}格式的字段,最终得到如下结构的数组:

const resultantArray = [
  {
    "type":"abc",
    "quantity_EDF":36,
    "quantity_SFDF":40
  },
  {
    "type":"yrf",
    "quantity_EDF":19,
    "quantity_SFDF":22
  }
];

实现方法(以JavaScript为例)

通过遍历数组+临时对象分组的方式即可实现,具体代码如下:

// 创建临时对象存储分组结果
const groupMap = {};

// 遍历原始数组处理每个元素
data.forEach(item => {
  // 若当前type未在分组容器中,初始化对应结构
  if (!groupMap[item.type]) {
    groupMap[item.type] = { type: item.type };
  }
  // 拼接字段名并赋值对应的quantity值
  groupMap[item.type][`quantity_${item.code}`] = item.quantity;
});

// 将分组对象的取值转为数组,得到最终结果
const resultantArray = Object.values(groupMap);

console.log(resultantArray);

代码说明

  • 用groupMap作为临时容器,以type为键存储每个分组的对象
  • 遍历元素时,若当前type未初始化,则创建包含type字段的新对象
  • 动态拼接quantity_{code}作为字段名,将对应quantity值赋值到分组对象中
  • 最后通过Object.values()提取分组对象中的值,转换为目标数组结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:28:31