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

如何将含不同键的对象数组转换为单个对象?

解决数组转单个对象的问题

你的问题出在照搬的代码逻辑和你的数组结构不匹配:

你使用的原代码是针对每个元素包含key和value固定属性的数组(比如{key:"11", value:"1100"}),但你的数组元素是每个对象只有一个独立的自定义键值对(比如{new: 'val'}),所以原代码里的item.key和item.value根本取不到有效值,自然返回{undefined: undefined}。

针对你的数组结构,有几种简单的解决方法:

方法1:使用reduce + Object.assign

直接将数组中的每个对象合并到累加对象中:

const arr = [{new: 'val'}, {new2: 'val2'}, {new3: 'val3'}];
const mergedObj = arr.reduce((acc, curr) => Object.assign(acc, curr), {});
console.log(mergedObj);
// 输出:{new: 'val', new2: 'val2', new3: 'val3'}

方法2:使用扩展运算符(更简洁)

利用Object.assign结合扩展运算符一次性合并所有数组元素:

const arr = [{new: 'val'}, {new2: 'val2'}, {new3: 'val3'}];
const mergedObj = Object.assign({}, ...arr);
console.log(mergedObj);

方法3:ES2020+ 用Object.fromEntries

先把每个对象转成键值对数组,再合并成单个对象:

const arr = [{new: 'val'}, {new2: 'val2'}, {new3: 'val3'}];
const mergedObj = Object.fromEntries(arr.flatMap(item => Object.entries(item)));
console.log(mergedObj);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:40:26