Как вставить значения в объект - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть такой объект.

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"
      }

}

Ответы [ 5 ]

0 голосов
/ 07 сентября 2018

Вы можете добавить новое свойство в собственность несколькими способами

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

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

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

  4. myObj.cars.car4 = 'Audi';

  5. Object.assign ():

    Object.assign(myObj.cars, {car4: 'Audi'});

  6. новый оператор расширения ECMA 7 (...):

    myObj.cars = { ...myObj.cars, car4: 'Audi' }

  7. Использование Lodash _ = require('lodash'):

    _.set(myObj, ['cars', 'car4'], 'Audi');

lodash.js также может создавать свойство нового свойства:

_.set(myObj, ['newProp', 'newCar', 'newBrand'], 'Think');
0 голосов
/ 07 сентября 2018

Это, на мой взгляд, плохо построенный JSON. Я бы использовал массив вместо именованного свойства "car" + someIndex

var myObj =
{
    "name":"John",
    "age":30,
    "cars": [
        { "brand":"Ford" },
        { "brand":"BMW" },
        { "brand":"Fiat" }
    ]
}
myObj.cars.push({ "brand":"Renault" });
console.log(myObj);
0 голосов
/ 07 сентября 2018

Вам необходимо сначала получить доступ к объекту cars, а затем назначить ему новый key-value, поэтому используйте myObj.cars.car4 = 'Audi' или с [], т.е. myObj.cars['car4'] = 'Audi'.

var myObj = {
  "name":"John",
  "age":30,
  "cars": {
    "car1":"Ford",
    "car2":"BMW",
    "car3":"Fiat"
  }
}
myObj.cars.car4 = 'Audi';
console.log(myObj);
0 голосов
/ 07 сентября 2018

2017 ответ: Object.assign ()

var obj = {
  "name":"John",
  "age":30,
  "cars": {
    "car1":"Ford",
    "car2":"BMW",
    "car3":"Fiat"
  }
};

Object.assign(obj.cars, {car4: "Audi"});

2018 оператор распространения объекта {...}

var obj = {
      "name":"John",
      "age":30,
      "cars": {
        "car1":"Ford",
        "car2":"BMW",
        "car3":"Fiat"
      }
    };

obj.cars = { ...obj.cars, car4: "Audi" }
0 голосов
/ 07 сентября 2018

только

myObj.cars["car4"] = "Audi";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...