场景:
{
value: "zhinan",
label: "指南",
children: [
{
value: "shejiyuanze",
label: "设计原则",
children: [
{
value: "yizhi",
label: "一致"
},
{
value: "fankui",
label: "反馈"
},
{
value: "xiaolv",
label: "效率"
},
{
value: "kekong",
label: "可控"
}
]
},
{
value: "daohang",
label: "导航",
children: [
{
value: "yizhi",
label: "一致"
},
{
value: "dingbudaohang",
label: "顶部导航"
}
]
}
]
}
这样 的对象,找到‘一致 ’的所有路径
递归是比较好的解题思路
unction getVal(opt, prefix = "", paths = []) {
for (const key in opt) {
let curPath = key === "value" ? `${prefix},${opt[key]}` : prefix;
if (opt[key] instanceof Array) {
curPath = paths[paths.length - 1];
getVal(opt[key], curPath, paths);
} else if (opt[key] instanceof Object) {
getVal(opt[key], curPath, paths);
} else {
if (key === "value") {
paths.push(curPath);
}
}
}
return paths;
}