recursion.js三层分类结构构建工具
三层分类结构的,前端递归搞定会让你省不少事。recursion.js就是这么个小巧实用的工具,三层结构的递归遍历,简单清晰,代码也容易改。只要把父级结构丢进去,就能格式化出你想要的层级关系,像分类树、菜单、甚至权限结构都挺适合。
不用引入复杂的库,也不需要写一堆判断。逻辑清晰,基本是:parentId找孩子,孩子再去找孙子,最多三层,效率也还不错。如果你只需要三层,不搞无限级,这个挺合适。
用法也不难,类似这样:
function formatTree(list, parentId) {
return list
.filter(item => item.parent === parentId)
.map(item => ({
...item,
children: list.filter(c => c.parent === item.id)
.map(child => ({
...child,
children: list.filter(g => g.parent === child.id)
}))
}));
}
要注意,虽然叫递归,其实逻辑比较线性,不是真正意义上的无限级。如果你要更复杂的树,得稍微改改,或者用更通用的递归写法。哦对了,还有几个资源你可以看看:
- 漂亮无限级分类源代码三层实现,适合参考样式
- PHP 迭代与递归实现无限级分类,后端逻辑也能配合
- petshop 三层,实际业务场景还蛮典型
如果你刚好在搞分类展示、权限分组,或者做管理后台的树状结构,不妨试试这个recursion.js,简单好用,改起来也不难。
下载地址
用户评论