为了账号安全,请及时绑定邮箱和手机立即绑定

获取对象中键的级别

获取对象中键的级别

精慕HU 2021-11-04 17:37:13
现在我使用JSON Objects来比较信息,我不知道是否有办法获得特定键的深度级别。例如,我有这个 JSON 对象:{   hi : "everyone",   hereIs : {      an : "Object"   }}我需要在for ... in循环中知道每个键的深度级别:hi is in level 0hereIs is in level 0an is in level 1我目前所拥有的是: // Loop through the first object     for (key in obj1) {          if (obj1.hasOwnProperty(key)) {               compare(obj1[key], obj2[key], key);          }     }“比较”功能如果用来验证对象中的信息是否相等,如果不相等,则将信息添加到第三个对象中,我想知道的是如何获得 obj1 中的密钥级别和将其传递给“比较”函数。感谢您的帮助。
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

你可以试试这个:


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"

   }

});


查看完整回答
反对 回复 2021-11-04
?
米脂

TA贡献1836条经验 获得超3个赞

您可以使用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;

});


查看完整回答
反对 回复 2021-11-04
  • 2 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信