/*这是data数据 [ { _id: 5e4a4d81f454430d6c2748a1, title: ‘技术团队‘, description: ‘这是技术团队‘, keywords: ‘技术团队‘, pid: ‘0‘, add_time: ‘‘ }, { _id: 5e4a4e4ff454430d6c2748a2, title: ‘关于我们‘, description: ‘这是关于我们‘, keywords: ‘关于我们‘, pid: ‘0‘, add_time: ‘‘ }, { _id: 5e4a4e60f454430d6c2748a3, title: ‘移动开发‘, description: ‘‘, keywords: ‘‘, pid: ‘5e4a4d81f454430d6c2748a1‘, add_time: ‘‘ }, { _id: 5e4a4ea5f454430d6c2748a4, title: ‘网站开发‘, description: ‘‘, keywords: ‘‘, pid: ‘5e4a4d81f454430d6c2748a1‘, add_time: ‘‘ }, { _id: 5e4a4eb6f454430d6c2748a5, title: ‘数码‘, description: ‘数码‘, keywords: ‘数码‘, pid: ‘0‘, add_time: ‘‘ }, { _id: 5e4a4ec0f454430d6c2748a6, title: ‘笔记本电脑‘, description: ‘笔记本电脑‘, keywords: ‘笔记本电脑‘, pid: ‘5e4a4eb6f454430d6c2748a5‘, add_time: ‘‘ }, { _id: 5e4a4ecdf454430d6c2748a7, title: ‘手机‘, description: ‘数码‘, keywords: ‘数码‘, pid: ‘5e4a4eb6f454430d6c2748a5‘, add_time: ‘‘ }, { _id: 5e4a4ed2f454430d6c2748a8, title: ‘测试‘, description: ‘测试‘, keywords: ‘测试‘, pid: ‘0‘, add_time: ‘‘ }, { _id: 5e4a4ed6f454430d6c2748a9, title: ‘销售部门‘, description: ‘销售部门‘, keywords: ‘销售部门‘, pid: ‘5e4a4d81f454430d6c2748a1‘, add_time: ‘‘ } ]*/
cateTolist(data){ console.log(data); var firstArr = [];//定义一个空数组,用于筛选一级分类 for(var i=data.length-1;i>=0;i--){ if(data[i].pid === ‘0‘){ //表示一级分类 firstArr.push(data[i]); //将一级分类push data.splice(i,1); //同时把data中属于一级分类的元素删除,剩下二级分类,减少遍历次数 } } for(var i=0;i<firstArr.length;i++){//根据firstArr中的_id和data中pid进行匹配,如果相同,说明data中的该元素属于firstArr中的二级分类 firstArr[i].list = [];//在一级分类中定义一个数组,用于保存二级分类 for(var j=data.length-1;j>=0;j--){//从末尾开始遍历二级分类数组 if(firstArr[i]._id == data[j].pid){ firstArr[i].list.push(data[j]); data.splice(j,1);//将匹配成功的二级分类数组中的元素删除 } } } }
原文:https://www.cnblogs.com/Liqian-Front-End-Engineer/p/12322795.html