一个关于递归算法的问题
我想找出isFolder全为true的对象,并且返回的新数组的目录层次结构不会改变
也就是把数组中对象isFolder为false的删除掉
可是我这样写没有达到我的目的,不知道为什么
我写的函数
function loop(data) {
return data.filter((item) => {
if (item.isFolder) {
loop(item.children);
return item
}
})
}
原数组
let data2 = [
{
"isFolder": false
},
{
"isFolder": true,
"children": [
{
"isFolder": false
},
{
"isFolder": true,
"children": [
{
"isFolder": false
},
]
}
]
}
]
期望得到的新数组
[{
"isFolder": true,
"children": [
{
"isFolder": true,
"children": []
}
]
}]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
loop会返回一个数组, 你的回调中这个返回的数组毫无作用
因为你只是返回了第一次filter的结果 item.children的结果并不在输出数组的中