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

如何将单动态键对象数组转换为包含所有动态键的单个对象

数组转合并对象的简洁实现

假设有如下结构的数组,每个元素都是只含单个键值对的对象:

const sourceArray = [
  { "dynamicKey1": true },
  { "dynamicKey2": false },
  { "dynamicKey3": true },
  // ...更多元素
];

要把它合并成包含所有键值对的单一对象,有几种简洁的实现方式:

方法1:使用 Object.assign + 展开运算符

这是最常用的写法,利用Object.assign的合并特性,配合展开运算符把数组元素逐个传入:

const convertedObj = Object.assign({}, ...sourceArray);

方法2:使用数组 reduce 方法

通过迭代数组逐步合并对象,逻辑更直观,也适合需要自定义合并规则的场景:

const convertedObj = sourceArray.reduce((acc, curr) => ({ ...acc, ...curr }), {});

如果需要处理重复键的覆盖逻辑(后面的键值对覆盖前面的),这个写法也能直接满足。

方法3:纯对象展开语法(适合已知短数组)

如果数组长度固定且较短,也可以直接展开所有元素,但动态长度的场景还是前两种更实用:

const convertedObj = { ...sourceArray[0], ...sourceArray[1], ...sourceArray[2] };

注意:如果数组中存在重复的键名,后面的对象会覆盖前面的键值,这是对象合并的默认行为。

内容的提问来源于stack exchange,提问作者G.Hunt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:39:52