我们有时候会拿到一个包含p_id和id的类似树形结构的数据,有一款jq插件zTree就有用到这样的数据。比如:
假设第一个元素为a节点,我们希望在a节点中加上children属性,该属性为数组类型,其元素为其他节点的p_id等于a节点的id的对象。
处理后的a节点为
处理这样的数据我想到的是首先拿到一级节点,之后再用递归去寻找一级节点的子节点。然后直接push到一级节点的children里就可以了。
这里我用的vue 做测试:
待处理数据为areaArr,也就是上面截图的areaArr,之后写两个方法,a,b。a方法中拿到一级节点,然后调用b方法拿到一级节点的子节点。
其中字节点可能还有子节点,所以b方法中使用递归查找子节点。
结果为: