let arr = [ { id: 1, pid: 0, name: "中国", }, { id: 2, pid: 1, name: "山西", }, { id: 3, pid: 1, name: "江苏", }, { id: 4, pid: 1, name: "北京", }, { id: 5, pid: 2, name: "吕梁", }, { id: 6, pid: 2, name: "太原", }, { id: 7, pid: 2, name: "运城", }, ]; // 处理函数 const arrOrTree = (data, rootNum) => { let resultArr = []; data.forEach((r) => { // 匹配第一层数组 if (rootNum == r.pid) { // 匹配到的根 resultArr.push(r); // 循环中调用本身,返回值是根据r.id匹配到的7个数组 // 过滤掉空数组后将他添加到每一项的chilren属性上 arrOrTree(data, r.id).length && (r.children = arrOrTree(data, r.id)); } }); return resultArr; }; arrOrTree(arr, 0); // 0用来匹配根(第一层数组[pid]) console.log(arrOrTree(arr, 0)); // 结果打印 </script>
正文
递归函数实现数组转tree
转载请注明出处:米耀华博客
发表评论