【问题标题】:Kinvey attribute updatesKinvey 属性更新
【发布时间】: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


【解决方案1】:

Kinvey legacy BL 使用节点 0.10,这可能是您不能使用 Object.children 的原因吗?

不过,它确实支持 lodash,因此您可以使用 lodash 模块中的对象操作选项。

作为替代方案,您可以查看新的Flex Services,这是一个使用 node6 的微服务层。它允许您内联您想要的任何 npm 模块,并将整个 node.js 运行时部署到我们的 FSR 运行时中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多