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

如何按title分组嵌套JSON数组并限制每组value元素数量为2?

问题描述

给定如下JSON数据:

{
    "id": "1",
    "category": "education",
    "field": "science",
    "items": [
      {
        "title": "item 1",
        "value": "10"
      },
      {
        "title": "item 1",
        "value": "102"
      },
      {
        "title": "item 2",
        "value": "12"
      },
      {
        "title": "item 1",
        "value": "19"
      },
      {
        "title": "item 1",
        "value": "13"
      },
      {
        "title": "item 2",
        "value": "149"
      }
    ]
}

需要完成以下转换:

  • 移除id字段
  • 将items数组按title分组
  • 同一title对应的value合并为数组,且仅保留前2个元素

最终目标结构:

{
    "category": "education",
    "field": "science",
    "items": [
      {
        "title": "item 1",
        "value": [
          "10",
          "102"
        ]
      },
      {
        "title": "item 2",
        "value": [
          "12",
          "149"
        ]
      }
    ]
}
解决方案(JavaScript)

通过以下步骤实现转换:

  1. 解构原对象剔除id字段,保留剩余核心字段
  2. 用映射表按title分组收集value,仅保留每组前2个值
  3. 将映射表转换为目标格式的items数组

代码实现:

const originalData = {
    "id": "1",
    "category": "education",
    "field": "science",
    "items": [
      { "title": "item 1", "value": "10" },
      { "title": "item 1", "value": "102" },
      { "title": "item 2", "value": "12" },
      { "title": "item 1", "value": "19" },
      { "title": "item 1", "value": "13" },
      { "title": "item 2", "value": "149" }
    ]
};

// 剔除id字段
const { id, ...processedData } = originalData;

// 分组处理items,保留每组前2个value
const groupMap = processedData.items.reduce((map, item) => {
    if (!map[item.title]) map[item.title] = [];
    if (map[item.title].length < 2) {
        map[item.title].push(item.value);
    }
    return map;
}, {});

// 转换为目标items结构
processedData.items = Object.entries(groupMap).map(([title, value]) => ({ title, value }));

console.log(JSON.stringify(processedData, null, 2));

运行代码后即可得到符合要求的JSON结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 19:08:29