如何用JS构建创新算法实现无限层级长尾词树形结构?

2026-04-05 11:3110阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计827个文字,预计阅读时间需要4分钟。

如何用JS构建创新算法实现无限层级长尾词树形结构?

由于项目需求,我将一个线性数组转换为树形数组。在网上查阅了许多文章后,发现他们的描述过于复杂。于是自己动手写了一个,经过一番折腾,终于将它实现出来了(激动.gif)。使用两个filter进行过滤。

由于做项目的需要,把一个线性数组转成树形数组,在网上查了很多文章,觉得他们写的太复杂了,于是自己写了一个,在折腾了一下午终于把它写出来啦(激动.gif),用两个filter过滤器就搞定了,代码简洁明了,数据结构小白都能看懂。

js代码:把扁平数据转成树形数据

function setTreeData(source){ let cloneData = JSON.parse(JSON.stringify(source)) // 对源数据深度克隆 return cloneData.filter(father=>{ // 循环所有项,并添加children属性 let branchArr = cloneData.filter(child=> father.id == child.parentId); // 返回每一项的子级数组 branchArr.length>0 ? father.children=branchArr : '' //给父级添加一个children属性,并赋值 return father.parentId==0; //返回第一层 }); }

根据网友给我指出的问题,之前的算法会影响到源数据,之后我对获取的数据进行了深度克隆,完美解决。

阅读全文

本文共计827个文字,预计阅读时间需要4分钟。

如何用JS构建创新算法实现无限层级长尾词树形结构?

由于项目需求,我将一个线性数组转换为树形数组。在网上查阅了许多文章后,发现他们的描述过于复杂。于是自己动手写了一个,经过一番折腾,终于将它实现出来了(激动.gif)。使用两个filter进行过滤。

由于做项目的需要,把一个线性数组转成树形数组,在网上查了很多文章,觉得他们写的太复杂了,于是自己写了一个,在折腾了一下午终于把它写出来啦(激动.gif),用两个filter过滤器就搞定了,代码简洁明了,数据结构小白都能看懂。

js代码:把扁平数据转成树形数据

function setTreeData(source){ let cloneData = JSON.parse(JSON.stringify(source)) // 对源数据深度克隆 return cloneData.filter(father=>{ // 循环所有项,并添加children属性 let branchArr = cloneData.filter(child=> father.id == child.parentId); // 返回每一项的子级数组 branchArr.length>0 ? father.children=branchArr : '' //给父级添加一个children属性,并赋值 return father.parentId==0; //返回第一层 }); }

根据网友给我指出的问题,之前的算法会影响到源数据,之后我对获取的数据进行了深度克隆,完美解决。

阅读全文