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

如何合并对象中两个动态嵌套键的取值并生成新对象?

解决方案

由于外层键和嵌套键都是动态的,核心思路是遍历原对象的所有内层子对象,将它们的键值对合并到一个新对象中。以下是两种简洁通用的实现方式:

方式一:Object.values + Object.assign

通过Object.values(query)获取所有内层子对象组成的数组,再用Object.assign将这些子对象合并为一个新对象:

const query = {
  item: { 'available': false },
  status: { 'locked': true }
};

const result = Object.assign({}, ...Object.values(query));
console.log(result); // { available: false, locked: true }

如果存在重复的嵌套键,后出现的子对象会覆盖前面的,这符合对象键的唯一性规则。

方式二:Array.prototype.reduce

用reduce遍历内层子对象,逐个将键值对添加到结果对象中,灵活性更强,可自定义重复键的处理逻辑:

const query = {
  item: { 'available': false },
  status: { 'locked': true }
};

const result = Object.values(query).reduce((acc, obj) => {
  // 可在此添加重复键的自定义处理逻辑,例如判断键是否已存在再决定是否覆盖
  return { ...acc, ...obj };
}, {});
console.log(result); // { available: false, locked: true }

这两种方式完全不依赖固定键名,无论外层键(如item、status)或嵌套键(如available、locked)如何变化,都能正常完成提取合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:15:34