Javascript 如何将值推入对象

Javascript 如何将值推入对象,javascript,object,Javascript,Object,我有一件像这样的东西 var myObj = { "name":"John", "age":30, "cars": { "car1":"Ford", "car2":"BMW", "car3":"Fiat" } } myObj['model']='XUV'; 我知道要添加这样的条目 var myObj = { "name":"John", "age":30, "cars": { "car1":"Ford", "car2":"B

我有一件像这样的东西

var myObj = {
  "name":"John",
  "age":30,
  "cars": {
    "car1":"Ford",
    "car2":"BMW",
    "car3":"Fiat"
  }
}
myObj['model']='XUV';
我知道要添加这样的条目

var myObj = {
  "name":"John",
  "age":30,
  "cars": {
    "car1":"Ford",
    "car2":"BMW",
    "car3":"Fiat"
  }
}
myObj['model']='XUV';
但我想在cars对象中添加一个条目,将新的“Audi”汽车添加为car4 你能告诉我怎么加这个吗

最终输出应该是这样的

 var myObj = {
      "name":"John",
      "age":30,
      "cars": {
        "car1":"Ford",
        "car2":"BMW",
        "car3":"Fiat",
        "car4":"Audi"
      }

}
只是

您需要首先访问cars对象,然后在那里分配一个新的键值,以便使用myObj.cars.car4='Audi'或使用[]即myObj.cars['car4']='Audi'

var myObj={ 姓名:约翰, 年龄:30,, 汽车:{ car1:福特, 车2:宝马, 汽车3:菲亚特 } } myObj.cars.car4=‘奥迪’; console.logmyObj 2017回答:Object.assign

2018对象扩展运算符{…}


在我看来,这是一个构建糟糕的JSON。我将使用数组而不是命名的属性car+someIndex

myObj变种= { 姓名:约翰, 年龄:30,, 汽车:[ {品牌:福特}, {品牌:宝马}, {品牌:菲亚特} ] } myObj.cars.push{品牌:雷诺};
console.logmyObj 可以通过多种方式向属性添加新属性

myObj['cars']['car4']='Audi'

myObj['cars'].car4='Audi'

myObj.cars['car4']='Audi'

myObj.cars.car4=‘奥迪’

Object.assign:

Object.assignmyObj.cars,{car4:'Audi'}

新ECMA 7扩展运算符…:

myObj.cars={…myObj.cars,car4:'奥迪'}

使用Lodash=需要“Lodash”:

_.setmyObj、[‘汽车’、‘汽车4’]、‘奥迪’

lodash.js还可以创建新属性的属性:

_.set(myObj, ['newProp', 'newCar', 'newBrand'], 'Think');

请访问,采取的,看看什么和。做一些研究,搜索相关话题等;如果你被卡住了,发布一个你的尝试,注意输入和预期的输出。我会把它命名为文字对象,而不是json。在汽车列表中使用对象似乎是错误的。我建议将其改为数组,然后使用myObj.cars.push“Audi”;
_.set(myObj, ['newProp', 'newCar', 'newBrand'], 'Think');