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

如何用JavaScript为每个嵌套对象添加新的键值对?

给嵌套JavaScript对象的每个层级添加指定键值对

要实现给嵌套对象的每一层都新增id: 1的键值对,我们可以写一个递归函数遍历对象的所有层级,逐个处理每个对象:

实现代码

function addKeyToNestedObjects(obj, key, value) {
  // 非对象或null直接返回原值
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }

  // 创建新对象,先插入指定键值对
  const newObj = { [key]: value, ...obj };

  // 遍历属性,递归处理嵌套对象
  for (const prop in newObj) {
    if (Object.prototype.hasOwnProperty.call(newObj, prop)) {
      newObj[prop] = addKeyToNestedObjects(newObj[prop], key, value);
    }
  }

  return newObj;
}

// 输入对象
const obj = {
    name: {
        final: {
            val: 'yes'
        }
    }
};

// 调用函数添加id:1
const outObj = addKeyToNestedObjects(obj, 'id', 1);

console.log(outObj);

输出结果

{
  id: 1,
  name: {
    id: 1,
    final: {
      id: 1,
      val: 'yes'
    }
  }
}

代码说明

  • 先判断当前值是否为有效对象,非对象直接返回,避免递归出错
  • 用展开运算符创建新对象,不会修改原输入对象,避免副作用
  • 递归遍历每个属性,对嵌套的子对象重复执行添加键值的操作
  • 可通过修改key和value参数,灵活添加不同的键值对,不止局限于id:1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:55:01