获取对象中键的级别

问题描述 投票:-2回答:2

现在我正在使用JSON对象来比较信息,并且我不知道是否有办法获取特定密钥的深度。

例如,我有这个JSON对象:

{
   hi : "everyone",
   hereIs : {
      an : "Object"
   }
}

而且我需要在for ... in循环中知道每个键的深度级别:

hi is in level 0
hereIs is in level 0
an is in level 1

目前我所拥有的是:

 // Loop through the first object
     for (key in obj1) {
          if (obj1.hasOwnProperty(key)) {
               compare(obj1[key], obj2[key], key);
          }
     }

“比较”功能,如果要验证对象中的信息是否相等,如果不相等,则将信息添加到第三个对象中,我想知道如何获取密钥的级别。 obj1并将其传递给“比较”功能。

谢谢您的帮助。

javascript object tree key depth
2个回答
0
投票

您可以如下使用JSON.stringifyJSON.stringify

replacer

0
投票

您可以尝试以下方法:

const obj = {
  hi: "everyone",
  hereIs: {
    an: "Object",
    and: {
      another: "one"
    }
  }
}

let level = -1;

JSON.stringify(obj, function(k, v) {
  if (level >= 0)
    console.log(k, "is in level", level);
  if (typeof v == "object")
    level++;
  return v;
});
© www.soinside.com 2019 - 2024. All rights reserved.