Добавьте объектам в джаваскрипте метод set
, который позволяет устанавливать значение по составному ключу.
Метод может добавлять новое поле:
const obj1 = { a: { b: { x: 1, }, }, }; obj1.set("a.b.y", 6); // obj1 === { // a: { // b: { // x: 1, // y: 6, // }, // }, // };
Или заменять старое значение:
const obj2 = { a: { b: { x: 1, }, }, }; obj2.set("a.b", 7); // obj2 === { // a: { // b: 7, // }, // };
Если необходимо, создаются новые объекты:
const obj3 = { a: { b: { x: 1, }, }, }; obj3.set("a.m.n.y", 8); // obj3 === { // b: { // x: 1, // }, // a: { // m: { // n: { // y: 8, // }, // }, // }, // };