【发布时间】:2018-04-04 09:05:21
【问题描述】:
寻找一种更好的方法来使用另一个包含更新值/新条目的对象来更新对象的子对象。
这里的参数“pObj”是一个已经是一些孩子的对象,只是想用参数“数据”中可用的最新值更新pObj。
以下代码,我使用的是 Kinvey 无服务器云平台。 Kinvey 不支持的“Object.children” - 不清楚原因。
下面的代码对我来说工作正常,但它看起来有点难看,也固定了深度。
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;
}
【问题讨论】:
-
您使用的是哪个 Kinvey SDK?或者您正在尝试在 Kinvey BL 上实现此功能?
-
@Pranav In Kinvey BL
标签: javascript kinvey