Ищете лучший подход к обновлению дочерних объектов объекта с использованием другого объекта, который содержит обновленные значения / новые записи.
Здесь param «pObj» - это объект, который уже есть у некоторых детей, просто хочет обновить pObj последними значениями, доступными в param «data».
Ниже кода я использовал бессерверную облачную платформу Kinvey. "Object.children" не поддерживается Kinvey - причина не ясна.
Код ниже у меня работает нормально, но выглядит немного некрасиво, а также имеет фиксированную глубину.
function mergeObjects(pObj, data) {
var tempObj = {};
if (pObj) {
tempObj = pObj;
}
if (typeof(data) == "object") {
for (var j in data) {
if (!tempObj[j]) {
tempObj[j] = {};
}
if (typeof(data[j]) == "object") {
for (var k in data[j]) {
if (!tempObj[j][k]) {
tempObj[j][k] = {};
}
if (typeof(data[j][k]) == "object") {
for (var l in data[j][k]) {
if (!tempObj[j][k][l]) {
tempObj[j][k][l] = {};
}
tempObj[j][k][l] = data[j][k][l];
}
} else {
tempObj[j][k] = data[j][k];
}
}
} else {
tempObj[j] = data[j];
}
}
}
return tempObj;
}
@Pranav In Kinvey BL



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Kinvey legacy BL использует узел 0.10, может это быть причиной того, что вы не можете использовать Object.children?
Однако он поддерживает lodash, поэтому, возможно, в модуле lodash есть параметры управления объектами, которые вы можете использовать вместо этого.
В качестве альтернативы вы можете проверить новый Услуги Flex, уровень микросервисов, который использует node6. Это позволяет вам встроить любой модуль npm, который вы хотите, и развернуть всю среду выполнения node.js в нашу среду выполнения FSR.
Какой Kinvey SDK вы используете? или вы пытаетесь это реализовать на Kinvey BL?