共计 506 个字符,预计需要花费 2 分钟才能阅读完成。
download:Vue3.0(正式版)+ TS 仿知乎专栏企业级我的项目内置文档资料
在理论开发中,对树形 JSON 数据处理的业务场景十分常见;而且这些数据必然是多层级的,那么很重要的一点就是要做到递归。特地是在动静路由筛选和树形构造数据筛选中。正所谓,“工欲善其事, 必先利其器”。所以本文总结几种用于解决失去咱们业务中所需的真正数据的办法。
二. 实现办法
“splice”办法(不举荐):
阐明:这种办法只适应于唯一性的条件(比方:过滤唯一性 id)的场景。
如果是用在筛选树形数据或者路由菜单(比方:过滤 hidden 为 true)的场景,会因为其实正向删除 index 值,故导致第一次除外的每次遍历递归的 index 值不精确,所以删除的值也是不对的,故不举荐。
代码实现:
// 只实用于唯一性的 id 的递归过滤
function filterData(arr, id) {arr.forEach((item, index) => {if (item.id === id) {arr.splice(index, 1)
}
if (item.children && item.children.length) {filterData(item.children, id)
}
})
}
正文完