Javascript 通过具有类型的直接路径在树中查找路径
我尝试改进此代码: 我要这个Javascript 通过具有类型的直接路径在树中查找路径,javascript,Javascript,我尝试改进此代码: 我要这个数据: const data = [ { 'name': 'name1', 'tree': [ {'name': 'name2'}, {'type': 'type1'}, { 'name': 'name4', 'tree': [ {'name': 'nam
数据
:
const data = [
{
'name': 'name1',
'tree': [
{'name': 'name2'},
{'type': 'type1'},
{
'name': 'name4',
'tree': [
{'name': 'name5'},
{'type': 'type2'}
]
},
{'name': 'name7'}
]
},
{
'name': 'name8',
'tree': [
{'type': 'number'}
]
}
];
const types = [
{
'type': 'number',
'tree': [
{
'name': 'number1',
'tree': [
{
'type': 'number'
}
]
},
{
'name': 'number2',
'tree': [
{
'type': 'number'
}
]
}
]
},
{
'type': 'type1',
'error': true,
'tree': [
{
'name': 'name1',
'tree': [
{
'type': 'type2'
}
]
}
]
},
{
'type': 'type2',
'tree': [
{
'name': 'name3',
'end': true,
'tree': [
{
'type': 'type3'
}
]
},
{
'type': 'type3'
}
]
},
{
'type': 'type3',
'end': true,
'tree': [
{
'name': 'name4'
},
{
'name': 'name6'
}
]
},
];
预期产出:
findPath(data, ["name1", "name1"]); // ["name1", "name1"]
findPath(data, ["name1", "name1", "name3"]); // []
findPath(data, ["name1", "name1", "name3", "name4"]); // ["name1", "name1", "name3", "name4"]
findPath(data, ["name8", "number1", "number1", "number2"]); // ["name8", "number1", "number1", "number2"]
类型可以没有数字这样的限制
但是如果有end:true
则必须有continue,因此name
或type
我所有的努力都是徒劳的
我对另一个主题中的函数有一些问题
1) r
是什么意思
2) 什么是无成本=符号()代码>是什么意思
3) q是什么意思
4) …more
是什么意思
谢谢你的帮助或任何提示 不要这样看代码,并期望能够理解它。它写得太“聪明”了,很难理解。代码使用了一些非常独特的方法来解决这个问题。找到解决相同问题的另一个代码示例并从那里开始。如果您遇到另一个更容易理解的代码,我相信我们会非常乐意提供帮助。@Andrew我怀疑是否有其他代码可以做同样的事情。我只找到了这个。它对你来说也太难读了?
findPath(data, ["name1", "name1"]); // ["name1", "name1"]
findPath(data, ["name1", "name1", "name3"]); // []
findPath(data, ["name1", "name1", "name3", "name4"]); // ["name1", "name1", "name3", "name4"]
findPath(data, ["name8", "number1", "number1", "number2"]); // ["name8", "number1", "number1", "number2"]