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

如何使用map或reduce将JavaScript键值对象数组转换为字典

转换实现方法

map 方法的核心作用是生成与原数组长度一致的新数组,无法直接输出对象格式的结果,因此推荐优先使用reduce完成聚合转换,也可以通过map配合对象转换方法实现。

方法1:reduce 实现(推荐)

直接通过 reduce 的聚合能力合并所有对象的键值对:

const di = ar.reduce((acc, cur) => Object.assign(acc, cur), {});

也可以用对象展开运算符简化写法:

const di = ar.reduce((acc, cur) => ({...acc, ...cur}), {});

逻辑说明:

  • reduce 第二个参数传入空对象{}作为聚合的初始值
  • 每遍历到数组中的一个对象,就将该对象的所有键值对合并到累加器acc中
  • 遍历完成后累加器就是合并完成的目标字典

方法2:map 配合 Object.fromEntries 实现

如果必须使用map方法,可以按如下写法实现:

const di = Object.fromEntries(ar.map(ob => Object.entries(ob)).flat());

逻辑说明:

  • 先用Object.entries()将每个对象转换为[键, 值]格式的二维数组
  • 通过flat()将嵌套的数组合并为一维的键值对数组
  • 最后用Object.fromEntries()将键值对数组转换为普通对象

内容的提问来源于stack exchange,提问作者K.I.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:09:03