标签:el res tree rank children js id fn
对于上一篇文章 vue中的递归做出 一些改进
element=========截图
解决方法:
利用递归的方法循环树形数据,当遇到有children的对象再次强调有递归函数循环children数组,每次循环的数据放入一个提前生命好的数组里,等所有的递归函数执行完毕,这个数据就是想要的扁平数据数组,如上图。
let res = [] // 用于存储递归结果(扁平数据) // 递归函数 const fn = (source)=>{ source.forEach(el=>{ res.push(el) el.child && el.child.length>0 ? fn(el.child) : "" // 子级递归 }) }
示例1
let res = [] // 用于存储递归结果(扁平数据) // 递归函数 const fn = (source)=>{ source.forEach(el=>{ res.push(el) el.children && el.children.length>0 ? fn(el.children) : "" // 子级递归 }) } // 树形数据 const arr = [ { id: "1", rank: 1 }, { id: "2", rank: 1, children:[ { id: "2.1", rank: 2 }, { id: "2.2", rank: 2 } ] }, { id: "3", rank:1, children:[ { id: "3.1", rank:2, children: [ { id:'3.1.1', rank:3, children:[ { id: "3.1.1.1", rank: 4, children:[ { id: "3.1.1.1.1", rank: 5 } ] } ] } ] } ] } ] fn(arr) // 执行递归函数 console.log(res) // 查看结果
结果
标签:el,res,tree,rank,children,js,id,fn 来源: https://www.cnblogs.com/zzm131400/p/15038372.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。