如何将其他对象添加到已引用一个或多个对象的键中?

时间:2018-03-10 23:14:09

标签: javascript

现在作为我的反应状态的一部分,我有一个指向至少一个对象的用户密钥,例如:

{  
   users:{  
      user1:{  
         key:value,
         key:value
      }
   }
}

{  
   users:{  
      user1:{  
         key:value,
         key:value
      }
   },
   {  
      user2:{  
         key:value,
         key:value
      }
   }
}

如何在作为另一个用户对象的状态对象(例如user3)中为users键添加一个附加值?

1 个答案:

答案 0 :(得分:0)

将您的示例与对象结合使用。

添加新属性,如下所示:

obj.users['user3'] = user3;



var obj = {  users: {    user1: {      key1: 'value',      key2: 'value'    },    user2: {      key1: 'value',      key2: 'value'    }  }};

var user3 = {
  key1: 'value',
  key2: 'value'
};

obj.users['user3'] = user3;

console.log(obj);

.as-console-wrapper { max-height: 100% !important; top: 0; }




使用函数Object.assign(...)

obj.users['user3'] = user3;



var obj = {  users: {    user1: {      key1: 'value',      key2: 'value'    },    user2: {      key1: 'value',      key2: 'value'    }  }};

var user3 = {
  key1: 'value',
  key2: 'value'
};

Object.assign(obj.users, { 'user3': user3});

console.log(obj);

.as-console-wrapper { max-height: 100% !important; top: 0; }




使用Spread语法...

obj.users['user3'] = user3;



var obj = {  users: {    user1: {      key1: 'value',      key2: 'value'    },    user2: {      key1: 'value',      key2: 'value'    }  }};

var user3 = {
  key1: 'value',
  key2: 'value'
};

obj.users = {...obj.users, 'user3': user3};

console.log(obj);

.as-console-wrapper { max-height: 100% !important; top: 0; }