逐个更新Javascript嵌套对象

逐个更新Javascript嵌套对象,javascript,Javascript,我有这样的目标: { a:{name:'a'}, b:{name:'b'}, c:{name:'c'}, } 我的目标是为每个对象添加新的键/值对。因此,最终结果如下所示: { a:{name:'a',newField:false}, b:{name:'b',newField:false}, c:{name:'c',newField:false}, } 到目前为止,我已经尝试将当前对象放入数组并循环,但没有成功,因为我只获得了第一级的键/值对 有什么

我有这样的目标:

  {
   a:{name:'a'},
   b:{name:'b'},
   c:{name:'c'},
}
我的目标是为每个对象添加新的键/值对。因此,最终结果如下所示:

 {
   a:{name:'a',newField:false},
   b:{name:'b',newField:false},
   c:{name:'c',newField:false},
}
到目前为止,我已经尝试将当前对象放入数组并循环,但没有成功,因为我只获得了第一级的键/值对


有什么建议吗?

最简单的方法是使用循环

const数据={
a:{name:'a'},
b:{name:'b'},
c:{name:'c'},
};
for(让我们输入数据){
数据[key].newField=false;
}
控制台日志(数据)
.as控制台包装{top:0;最大高度:100%!important;}
a for..in应该这样做

for (const key in yourObject) {
  yourObject[key].newField = false
}
试试这个:

const orig_obj={
a:{name:'a'},
b:{name:'b'},
c:{name:'c'},
};
Object.keys(orig_obj).forEach((key)=>{
orig_obj[key].newField=false;
});
控制台日志(orig_obj);
//输出:
/*
{
a:{name:'a',newField:false},
b:{name:'b',newField:false},
c:{name:'c',newField:false},
}
*/

如果您愿意改变对象而不是创建新对象,请使用

const obj={
a:{name:'a'},
b:{name:'b'},
c:{name:'c'},
};
用于(输入obj){
obj[key].newField=false;
}

控制台日志(obj)遍历
对象。值(你的对象)
我考虑过,但这不是行数据[key].newField=false;被认为是变异?@Roffybc我添加了一个非变异的例子。非常感谢你,我将在6分钟内接受你的答案。我正要发布你自己的答案。。除息的