猿问

获取对象中键的级别

现在我使用JSON Objects来比较信息,我不知道是否有办法获得特定键的深度级别。


例如,我有这个 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 中的密钥级别和将其传递给“比较”函数。


感谢您的帮助。


精慕HU
浏览 185回答 2
2回答

守候你守候我

你可以试试这个:function showDepth(obj, lvl){  if(!lvl) lvl = 0;  Object.keys(obj).map(key => {    console.log(key + ' is in level ' + lvl);    if(typeof obj[key] === "object") {      showDepth(obj[key], lvl+1);    }  });}showDepth({   hi : "everyone",   hereIs : {      an : "Object"   }});

米脂

您可以使用JSON.stringify'sreplacer如下: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;});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答