求教一个js递归函数的写法
工作中一个递归写不出,求高手帮忙,采纳有打赏,谢谢,Thanks♪(・ω・)ノ
有如下一段数据
[{
id: '1',
name: '姓名1',
items: [
{
id: '2',
name: '姓名2',
items: [
{
id: '3',
name: '姓名3',
items: [
{
id: '4',
name: '姓名4',
},
],
},
],
},
{
id: '5',
name: '姓名5',
},
{
id: '6',
name: '姓名6',
},
],
},
{
id: '7',
name: '姓名7',
}];
要求有一个函数,传入一个id值,从数据中找到id为传入id的对象,以及这个对象的所有父级对象
比如,传入id为'5',返回
[{id: '5', name: '姓名5'}, {id: '1', name: '姓名1'}]
传入id为'3',返回
[{id: '3', name: '姓名3'}, {id: '2', name: '姓名2'}, {id: '1', name: '姓名1'}]
谢谢大家帮助~~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
思路和“使用递归实现逆序打印用户输入的字符串”类似,每一层递归返回该层搜索到的路径,空数组代表搜索失败;当该层递归得到下层递归返回的结果后,就把当前节点加入路径中,然后向上层返回。
如果需要搜索的树特别大的话最好是优化一下返回的方式,我这种写法每次都会生成一个新的数组对象,你可以用
Array.push
把同一个路径传递下去。