//模拟数据
let data = [
{
"name": "干货",
"nodeLevel": 1,
"nodeId": "100000000",
"parentNodeId": "1",
"status": 10,
"id": "2",
"createTime": null
},
{
"name": "水果",
"nodeLevel": 1,
"nodeId": "200000000",
"parentNodeId": "1",
"status": 10,
"id": "3",
"createTime": null
},
{
"name": "蔬菜",
"nodeLevel": 1,
"nodeId": "300000000",
"parentNodeId": "1",
"status": 10,
"id": "4",
"createTime": "2022-06-06 12:12:42"
},
{
"name": "菜叶",
"nodeLevel": 2,
"nodeId": "301000000",
"parentNodeId": "300000000",
"status": 10,
"id": "5",
"createTime": null
},
{
"name": "水菜叶",
"nodeLevel": 3,
"nodeId": "301020000",
"parentNodeId": "301000000",
"status": 10,
"id": "6",
"createTime": null
},
{
"name": "木薯叶",
"nodeLevel": 3,
"nodeId": "301030000",
"parentNodeId": "301000000",
"status": 10,
"id": "7",
"createTime": null
},
{
"name": "浆果",
"nodeLevel": 2,
"nodeId": "201000000",
"parentNodeId": "200000000",
"status": 10,
"id": "8",
"createTime": null
},
{
"name": "瓜果",
"nodeLevel": 3,
"nodeId": "201010000",
"parentNodeId": "201000000",
"status": 10,
"id": "9",
"createTime": null
},
{
"name": "淡水菜叶",
"nodeLevel": 4,
"nodeId": "301020100",
"parentNodeId": "301020000",
"status": 10,
"id": "10",
"createTime": null
},
{
"name": "海水菜叶",
"nodeLevel": 4,
"nodeId": "301020200",
"parentNodeId": "301020000",
"status": 10,
"id": "11",
"createTime": null
}
]
/**
* name 分类名称
* nodeId 等级id 最顶级 0
* nodeLevel 等级 最多5级
* parentNodeId 子节点id(后端返回的数据,这个应该是子节点)
* 父节点的nodeId 和子节点的parentNodeId 匹配的话,那么这个parentNodeId就是nodeId下面的子节点。
* */
function navSelect(){
let dataList = data;
let dataKey = [1, 2, 3, 4, 5];//一共5级
let parentLevel = [];
dataKey.map((val) => {
parentLevel.push(dataList.filter((value) => {
return value.nodeLevel == val
}))
})
for(let i = parentLevel.length - 1; i >= 0; i--){
if(parentLevel[i].length > 0 && parentLevel[i-1]){
for(let j = 0;j < parentLevel[i-1].length; j++){
let newArr = []
for(let k = 0;k < parentLevel[i].length; k++){
if(parentLevel[i-1][j].nodeId === parentLevel[i][k].parentNodeId){
newArr.push(parentLevel[i][k])
}
}
parentLevel[i-1][j].cli = newArr
}
}
}
console.log(parentLevel[0])
}