JavaScript 中是否有打印嵌套对象属性的完整路径的方法。例如假设我有一个下面的对象
var items = [ {
2019 : {
December: {
Groceries : {
KitchenNeeds : {
[
"Milk",
"cheese"
]
}
}
}
}
}];
要访问 Milk,我可以访问 items[0].2019.December.Groceries.KitchenNeeds[0]
但是有什么办法吗,如果我选择“Milk”,它应该打印所有获得“牛奶”需要经过的树路。
最佳答案
您可以检查获取 pathe 的嵌套是否返回真值并返回一个包含实际键和嵌套值路径的数组。
function getPath(object, target) {
var path;
if (object && typeof object === 'object') {
Object.entries(object).some(([k, v]) => {
if (v === target) return path = [k];
var temp = getPath(v, target);
if (temp) return path = [k, ...temp];
});
}
return path;
}
var items = [{ 2019: { December: { Groceries: { KitchenNeeds: ["Milk", "cheese"] } } } }];
console.log(getPath(items, 'Milk'));
关于JavaScript:打印嵌套对象的完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59354192/