我有以下数据结构:
[
{
name: 'root',
children: [
{
name: 'page',
children: [
// and so on
]
}
]
}
]
我需要一个函数来获取路径给定的最新对象。例如。 getCurrentTree('root.page')
应该返回
{
name: 'page',
children: [
// and so on
]
}
希望你明白我的意思!我知道我应该递归地做,但是递归总是让我头疼。我也不确定是否应该使用 find
或 filter
来做到这一点?甚至减少
?有人有什么好主意吗?
干杯
最佳答案
您可以检查名称并为 child 迭代或返回对象。
function getCurrentTree(array, names) {
var [name, path] = names.split('.', 2),
result;
array.some(o => {
if (o.name === name) {
return result = path ? getCurrentTree(o.children, path) : o;
}
});
return result
}
var data = [{ name: 'root', children: [{ name: 'page', children: [] }] }];
console.log(getCurrentTree(data, 'root.page'));
关于JavaScript 通过路径递归查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55045977/