【发布时间】:2021-02-24 06:11:55
【问题描述】:
如何在这个嵌套数组中获取嵌套值的路径:
const categories = [
{
name: 'category1',
subcategories: [
{
name: 'category2',
subcategories: [],
},
{
name: 'category3',
subcategories: [
{
name: 'category4',
subcategories: [],
},
],
},
],
},
{
name: 'category5',
subcategories: [],
},
];
我需要实现一个返回如下内容的函数:
console.log(getCategoryPath(categories, 'category4')); // 应该输出:'/category1/category3/category4'
到目前为止,我得到了:
const getCategoryPath() = (categories, categoryName) {
if (category.name === categoryName) {
path = `/${category.name}`;
} else {
category.subcategories.find((firstLevelSubcategory) => {
if (firstLevelSubcategory.name === categoryName) {
path = `/${firstLevelSubcategory.name}`;
} else {
firstLevelSubcategory.subcategories.find(
(secondLevelSubcategory) => {
if (secondLevelSubcategory.name === categoryName) {
path = `/${secondLevelSubcategory.name}`;
}
}
);
}
});
}
}
例如,这会打印匹配的类别名称 /category4,但我需要打印该值 /category1/category3/category4 的整个路径。
在这种情况下,我无法识别匹配的categoryName 的父母/父母。我可以对这个问题使用递归吗?如果可以,我该如何应用它?
【问题讨论】:
标签: javascript arrays recursion path