【问题标题】:parsing JSON object in javascript and finding the depth在 javascript 中解析 JSON 对象并找到深度
【发布时间】:2015-12-21 13:28:24
【问题描述】:

我正在尝试查找节点的深度,但无法理解以下代码。 “node”是作为输入传递的节点对象。

 for (key in node) 
    {
        if (node.hasOwnProperty(key)) 
        {
            child = node[key];
            if (typeof child === 'object' && child !== null && key != 'parent') 
            {

这是我目前所理解的:

  • 每个被传递的节点——我们都检查它的属性
  • 对于每个属性,该属性的值变成一个子属性
  • 如果子对象的类型是对象,并且子对象不等于 null 并且属性不等于传递的父“节点”。 (这部分我没看懂)

我的解释正确吗?将不胜感激任何帮助。谢谢!

【问题讨论】:

    标签: javascript json node.js parsing web


    【解决方案1】:

    'parent' 似乎是一个普通字符串,它不是 javascript 中的保留字或 JSON 标准的内置属性,据我所知,您没有被传递给父节点。如果它是对父节点的引用(在 node['parent'] 中)我不确定它会提供什么功能(如果这个解析器正在走一棵树。

    你有更多可以分享的代码吗?正在解析的 JSON 的示例将很有用。我会在评论中发布此内容,但我没有足够的声誉,抱歉。

    【讨论】:

      【解决方案2】:

      以这个json为例:

      node = {'one': {'two': 3}, 'two':null, 'parent':4};
      

      现在你的代码:

      for (key in node) 
      {
          if (node.hasOwnProperty(key)) 
          {
              child = node[key];
              if (typeof child === 'object' && child !== null && key != 'parent') 
              {
      

      如果你只有child = {'two': 3}node 对象中的其余项目不尊重 if 声明。

      基本上你遍历node 项目,以查找不包含null 值且其对应键不同于parent 的对象的子项

      【讨论】:

      • 这里的父母指的是什么?你能解释一下吗?您已将属性之一包含为“父级”
      • parent 只是您示例中的一个键。不是来自javascript的东西,它是一个字符串,就像键onetwo一样。并且代码检查每个不具有等于parent 的键的对象。有意义吗?
      • 好的。所以'父'是对象的属性或节点的键。但是忽略值为“父”的键的目的是什么?
      • 哈哈。好问题。我不知道。您需要在获得代码的地方进行更多检查。肯定与 javascript 保留字或对象属性中的任何内容无关,因此您需要停止担心它,因为它不是您从 JS 书中遗漏的东西,它只是与传递给该函数的 JSON 相关的东西,它是自定义的东西,项目具体的可能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 2016-05-13
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      相关资源
      最近更新 更多