现在我正在使用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并将其传递给“比较”功能。
谢谢您的帮助。
您可以如下使用JSON.stringify
的JSON.stringify
:
replacer
您可以尝试以下方法:
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;
});