一.首先定义一个json数组。
pid:父类id
id:主键ID
var treeData = https://www.it610.com/article/[
{id:8,name:"王八",sex:1,pid:7},
{id:7,name:"赵薇",sex:1,pid:4},
{id:6,name:"晴儿",sex:1,pid:4},
{id:5,name:"王八",sex:1,pid:4},
{id:1,name:'yan',sex:1,pid:0},
{id:2,name:'zhang',sex:2,pid:1},
{id:3,name:'lisi',sex:1,pid:2},
{id:4,name:'zhaoliu',sex:2,pid:0}
];
二.最终输出结果: 【JavaScript递归遍历json数组并层级显示菜单】
文章图片
三.代码具体实现如下:
//用递归的方式生成层级数据
var getChildren = function(data,root){
var children = [];
for(var i = 0;
i < data.length;
i++){
if(root == data[i].pid){
data[i].children = getChildren(data,data[i].id);
children.push(data[i]);
}
}
return children;
}
var childData = https://www.it610.com/article/getChildren(treeData,0);
//用递归的方式显示层级数据
var str ="";
var forData = https://www.it610.com/article/function(childData,str){
str +="|______";
for(var i=0;
i";
forData(obj.children, str);
}else{
document.getElementById("os").innerHTML +=str + obj.name +"";
}
}
}
forData(childData,str);
推荐阅读
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- 接口|axios接口报错-参数类型错误解决
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export
- vue|Vue面试常用详细总结
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- css|我用css精灵图拼接了自己的英文名字,不会还有人不知道精灵图技术吧()
- css|css三角的做法及其案例