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

如何将两个JS对象数组处理为按Header字段分组的键值对对象

实现方案

你可以通过reduce+forEach的组合完成需求,逻辑清晰易维护,同时也能保证结果完全匹配headers中定义的Header分类,不会遗漏或多余分类:

// 第一步:基于headers生成初始结果对象,所有Header对应初始空数组
const result = headers.reduce((acc, headerItem) => {
  acc[headerItem.Header] = []
  return acc
}, {})

// 第二步:遍历terms数组,按需提取字段推入对应分类
terms.forEach(termItem => {
  // 仅处理headers中存在的Header,避免非法分类进入结果
  if (result[termItem.Header]) {
    result[termItem.Header].push({
      Term: termItem.Term,
      Definition: termItem.Definition
    })
  }
})

如果你想要更精简的写法,也可以把两步合并为一个reduce调用:

const result = terms.reduce((acc, termItem) => {
  const { Header, Term, Definition } = termItem
  if (acc[Header]) {
    acc[Header].push({ Term, Definition })
  }
  return acc
// 初始值直接通过headers的reduce生成
}, headers.reduce((initAcc, headerItem) => (initAcc[headerItem.Header] = [], initAcc), {}))

两种写法最终输出的结构完全匹配你要求的格式,你可以直接复制测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:06:01