Мне нужно добавить в этот объект новое свойство city со значением 'Москва'. Какие способы существуют для добавления нового ключа и значения в уже созданный JavaScript объект? Я пробовал разные варианты, но не уверен какой из них лучше использовать. Хотелось бы узнать несколько рабочих методов для решения этой задачи.
Или используй Object.assign() — Object.assign(myData, {city: 'Москва'});. Удобно когда добавляешь несколько свойств сразу. А зачем тебе это вообще? Может лучше сразу создать объект с нужными полями?
Еще вариант — spread оператор: myData = {...myData, city: 'Москва'};. Только помни: создается новый объект, старый остается нетронутым. Я обычно так делаю в React — там это норма. Есть еще Object.defineProperty(), но он для сложных случаев, когда нужно настраивать дескрипторы свойств.
Самый простой способ — это использовать точку: myData.city = 'Москва';. Если название свойства хранится в переменной, тогда можно использовать квадратные скобки: myData['city'] = 'Москва';. Лично я предпочитаю точку, так как это быстрее и проще читается. Оба метода вполне рабочие, выбирай тот, который тебе удобнее.