我正在尝试查找节点的深度,但我无法理解下面的代码。 “node”是作为输入传递的节点对象。
for (key in node)
{
if (node.hasOwnProperty(key))
{
child = node[key];
if (typeof child === 'object' && child !== null && key != 'parent')
{
这是我到目前为止所理解的:
我的解释是否正确?非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
'parent'
似乎是一个普通的字符串,它不是JSON标准的javascript或内置属性中的保留字,而且我可以告诉你,它没有被传递给父母节点。如果它是对父节点的引用(在node['parent']
中),我不确定它将提供什么功能(如果此解析器正在走树。
您可以分享更多代码吗?解析JSON的一个例子很有用。我会在评论中发帖,但我没有足够的声誉,抱歉。
答案 1 :(得分:0)
以这个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
不同