Как изменить объект с вложенными свойствами?

Для изменения объекта с вложенными свойствами в JavaScript следует рассмотреть несколько способов.

1. Для изменения значения конкретного свойства в объекте можно использовать точечную нотацию или квадратные скобки:

const obj = {
  prop1: {
    subProp1: 'value1',
    subProp2: 'value2'
  }
};

// 1 вариант
obj.prop1.subProp1 = 'new value';

// 2 вариант
obj['prop1']['subProp1'] = 'new value';

console.log(obj);

2. Если нужно изменить значение вложенного свойства, но оно отсутствует, его можно создать:

if (!obj.prop2) {
  obj.prop2 = {};
}

obj.prop2.subProp3 = 'value3';

console.log(obj);

3. Для изменения нескольких вложенных свойств рекомендуется использовать метод Object.assign() или оператор spread ...:

const newObj = {
  prop1: {
    subProp1: 'new value',
    subProp2: 'new value'
  }
};

obj.prop1 = Object.assign(obj.prop1, newObj.prop1); // или obj.prop1 = { ...obj.prop1, ...newObj.prop1 };

console.log(obj);

4. Если в объекте содержится массив, его элементы также можно изменять:

const obj = {
  arrayProp: [1, 2, 3]
};

obj.arrayProp[0] = 100;

console.log(obj);

Это лишь некоторые из способов изменения объекта с вложенными свойствами в JavaScript. Важно помнить об осторожности при изменении объектов, особенно если они используются в других частях кода.