没有递归方法来迭代嵌套属性

时间:2018-06-13 18:42:40

标签: javascript ecmascript-6

我刚刚来到this question解决方案,我已经多次看到它作为一种非常优雅的递归方法。虽然我想在承诺中做到这一点。有人知道如何以非递归方式迭代嵌套对象属性吗?我做了一个非常糟糕的函数,只针对一个嵌套属性的情况:(它返回一个promise)

export function setValue(propertyPah, value, obj) {
  console.log("setting the value of the property")

  let properties = propertyPah.split(".")

  if (properties.length > 1) {//not the last property
    let nestObject = obj[properties[0]]
    nestObject[properties[1]] = value
  } else {//last property
    obj[properties[0]] = value
  }
  return Promise.resolve(obj)
}

现在我需要三个嵌套属性...所以我想写一个通用的属性。毋庸置疑,我不是JavaScript的专家。

1 个答案:

答案 0 :(得分:-1)

您应该使用jsonpath-plus库来操作复杂的JSON对象。它允许您编写路径模式和查询来操作JSON对象。

我希望这能解决您的疑问。