const arr = [{ "id": "BC", "selected": true, "partiallySelected": false, "count": 175400, "childrens": [{ "id": "BC-SRV", "selected": false, "partiallySelected": false, "count": 22609, "childrens": [{ "id": "BC-SRV-COM", "selected": false, "partiallySelected": false, "count": 2304, "childrens": [{ "id": "BC-SRV-COM-FTP", "selected": false, "partiallySelected": false, "count": 187, "childrens":[] }, { "id": "BC-SRV-COM-TEL", "selected": false, "partiallySelected": false, "count": 137, "childrens":[] }, { "id": "BC-SRV-COM-MSX", "selected": false, "partiallySelected": false, "count": 222, "childrens":[] }, { "id": "BC-SRV-COM-QQQ", "selected": false, "partiallySelected": false, "count": 156, "childrens":[] }] }, { "id": "BC-SRV-BR", "selected": false, "partiallySelected": false, "count": 2093, "childrens": [] }, { "id": "BC-SRV-GBT", "selected": false, "partiallySelected": false, "count": 2133, "childrens": [] }] }, { "id": "BC-DB", "selected": false, "partiallySelected": false, "count": 20388, "childrens":[] }, { "id": "BC-SYB", "selected": true, "partiallySelected": false, "count": 13764, "childrens":[] }, { "id": "BC-SYY", "selected": true, "partiallySelected": true, "count": 22610, "childrens":[] }] }];
递归树组,父节点selected
为true
且partiallySelected
为fasle
的时候,所有子节点childrens
下的节点的selected
则也修改为true
syncChildrenStatus(arr)
后
希望得到的
newArr = [{ "id": "BC", "selected": true, "partiallySelected": false, "count": 175400, "childrens": [{ "id": "BC-SRV", "selected": true, "partiallySelected": false, "count": 22609, "childrens": [{ "id": "BC-SRV-COM", "selected": true, "partiallySelected": false, "count": 2304, "childrens": [{ "id": "BC-SRV-COM-FTP", "selected": true, "partiallySelected": false, "count": 187, "childrens":[] }, { "id": "BC-SRV-COM-TEL", "selected": true, "partiallySelected": false, "count": 137, "childrens":[] }, { "id": "BC-SRV-COM-MSX", "selected": true, "partiallySelected": false, "count": 222, "childrens":[] }, { "id": "BC-SRV-COM-QQQ", "selected": true, "partiallySelected": false, "count": 156, "childrens":[] }] }, { "id": "BC-SRV-BR", "selected": true, "partiallySelected": false, "count": 2093, "childrens": [] }, { "id": "BC-SRV-GBT", "selected": true, "partiallySelected": false, "count": 2133, "childrens": [] }] }, { "id": "BC-DB", "selected": true, "partiallySelected": false, "count": 20388, "childrens":[] }, { "id": "BC-SYB", "selected": true, "partiallySelected": false, "count": 13764, "childrens":[] }, { "id": "BC-SYY", "selected": true, "partiallySelected": true, "count": 22610, "childrens":[] }] }]
function syncChildrenStatus(arr) { return arr.map(v => ({ ...v, childrens: v.selected && !v.partiallySelected ? JSON.parse(JSON.stringify(v.childrens),(k,v) => k === 'selected' ? true : v) : syncChildrenStatus(v.childrens) }))}
问题内容: 我有一个将位置链接在一起的数据库表;一个位置可以在一个位置,也可以在另一个位置内。 这是深入探讨MySQL / PHP的深度: 在给定父级位置的情况下,如何使用MySQL如何获得其所有后代位置,无论深度如何? 问题答案: mysql.com上有 一篇漂亮的文章 ,概述了管理分层数据的各种方法。我认为它为您的问题提供了完整的解决方案,并显示了各种不太简单但较快的方法(例如嵌套集)。
我正在尝试在UI上显示树结构。但是得到一个错误。 无法绑定到“target”,因为它不是“i”的已知属性。(“v*ngFor=”让文件项 虽然这个属性存在于我的json文件中,如下所示: 我的html文件如下: 我无法找出这次失败的原因。我已经尝试了所有可能的条件,我可以申请使它工作。请帮我解决这个问题
本文向大家介绍PHP递归实现层级树状展开,包括了PHP递归实现层级树状展开的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了PHP递归实现层级树状展开的主要代码,供大家参考,具体内容如下 效果图: 实现代码: 以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。
翻到祖师爷代码,发现树结构的数据是后端通过递归去生成的,效率非常低,请问有什么方法可以优化吗?
题目描述 希望将上面数组用js转化成下面格式,请问如何实现呢
本文向大家介绍数据结构 二叉树的递归与非递归,包括了数据结构 二叉树的递归与非递归的使用技巧和注意事项,需要的朋友参考一下 数据结构 二叉树的递归与非递归 实例代码: 先序遍历(递归法) 后序遍历 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!