Javascript 获取嵌套对象中元素的所有父元素
我将以下数据存储在变量中:Javascript 获取嵌套对象中元素的所有父元素,javascript,arrays,object,Javascript,Arrays,Object,我将以下数据存储在变量中: let categories = [ { name: "a", nodes: [ { name: "aa", nodes: [ { name: "aaa" } ]
let categories = [
{
name: "a",
nodes: [
{
name: "aa",
nodes: [
{
name: "aaa"
}
]
},
{
name: "ab",
},
{
name: "ac",
},
{
name: "ad",
}
]
},
{
name: "b",
nodes: [
{
name: "ba",
},
{
name: "bb",
},
{
name: "bc",
},
{
name: "bd",
}
]
}
];
我有下面的递归函数,它接受类别变量和名称
function getCategoryParents(categories, name) {
for (let index = 0; index < categories.length; index++) {
const category = categories[index];
if (category.name === name) {
}
if (category.nodes && category.nodes.length) {
category.nodes.forEach(cat => this.getCategoryParents([cat], name));
}
}
}
函数getCategoryParents(类别、名称){
for(让index=0;indexgetCategoryParents(categories,“aaa”)
,它应该返回[“a”,“aa”,“aaa”]。因为aa是aaa的父级,a是aa的父级
我希望这是清楚的。我调整了您的函数,以便它在找到匹配项时实际返回一些值: 函数getCategoryParents(arr,名称){ 为了(让arr的孩子){ if(child.name==name){ 返回名称; }else if(child.nodes.length>0){ var x=getCategoryParents(child.nodes,name); 如果(x)返回Array.isArray(x)?[child.name,…x]:[child.name,x]; } } } 设类别=[ { 名称:“a”, 节点:[ { 名称:“aa”, 节点:[ { 名称:“aaa” } ] }, { 名称:“ab” }, { 名称:“ac” }, { 名称:“广告” } ] }, { 名称:“b”, 节点:[ { 姓名:“ba” }, { 姓名:“bb” }, { 姓名:“bc” }, { 姓名:“bd” } ] } ]; 常量结果=getCategoryParents(类别,“aaa”);
console.log(结果);//[“a”、“aa”、“aaa”][child.name,x]。展开不是函数。有没有其他支持的函数可以代替flat使用?@Ayoubk,哦,你使用的是node?我更新了答案