Javascript 如何将新项添加到对象中

Javascript 如何将新项添加到对象中,javascript,object,Javascript,Object,我正在学习对象,在dog中有一个名为所有者的嵌套对象,如何添加新所有者 const dog = { owners: { owner1: { id: "1", name: "John Doe", }, owner2: { id: &quo

我正在学习对象,在
dog
中有一个名为
所有者
的嵌套对象,如何添加新所有者

const dog = {
       owners: {
              owner1: {
                     id: "1",
                     name: "John Doe",
              },
              owner2: {
                     id: "2",
                     name: "Jane Doe",
              }
       },
};

建议使用
扩展运算符

const dog={
业主:{
所有者1:{
id:“1”,
姓名:“约翰·多伊”,
},
所有者2:{
id:“2”,
姓名:“无名氏”,
}
},
};
//单向javascript动态方式
//dog.owners[“owner3”]={id:3,名称:'Bob Smith'};
//2路(使用扩展操作器)
dog.owners={…dog.owners,owner3:{id:3,name:'Bob Smith'}
//3路使用object.assign
//dog.owners=Object.assign({},dog.owners,{owner3:{id:3,name:'Bob Smith'}})
console.log(dog.owner)
JavaScript解析器从左到右对此进行计算。dog指向owners对象并设置一个名为owner3的新属性,该属性指向新对象

如果不知道属性名称,也可以在括号内传递字符串值

const newOwner = "owner3";
dog.owners[newOwner] = {};

正是这样。您可以使用方括号(通常为动态属性引用保留),或者使用点语法-
dog.owners.owner3={…}更为传统。您还可以考虑将<代码>所有者属性作为对象数组。代码>dog.owner=[{…},{…},{…}]@fubar非常感谢您!我真的很难处理对象。一旦它们变得复杂,我就会完全迷失如果你的对象只包含以XXXXXXX SequenceNumber形式命名的属性,那么你可能应该使用数组而不是对象。“我想我会做一些类似…”的事情-你试过了吗?这不管用吗?问题到底是什么?问题是如何将属性添加到对象。这将创建一个新对象。对旧对象的任何现有引用都将保持不变。他可能只是想知道如何向现有对象添加新属性,我的回答用两种方式说明了这一点。。。
const newOwner = "owner3";
dog.owners[newOwner] = {};