可应用于处理后端返回的菜单管理数据格式,对指定值进行排序展示
主要是对每个子级范围的数组进行排序展示
方法:
let data = [
{
id: '1',
name: '首页',
sep: 1,
path: '/text/cc'
},
{
id: '2',
name: '资产管理',
path: '/text/cc',
sep: 4,
children: [
{
id: '2-1',
name: '资产管理1',
sep: 33,
path: '/text/cc'
},
{
id: '2-2',
name: '资产管理2',
sep: 11,
path: '/text/cc'
},
{
id: '2-3',
name: '资产管理3',
sep: 55,
path: '/text/cc'
}
]
},
{
id: '3',
name: '系统管理',
path: '/text/cc',
sep: 2,
children: [
{
id: '3-1',
name: '菜单管理',
sep: 11,
path: '/text/cc',
children: [
{
id: '3-1-1',
name: '菜单编辑',
sep: 444,
path: '/text/cc'
}
]
}
]
}
]
function getSort (data) {
return data.map((el) => {
const { children, ...rest } = el
const temp = { ...rest }
return children ? { ...temp, children: getSort(children) } : temp
})
.sort((a, b) => a.sep - b.sep)
}
console.log(getSort(data))
输出打印的数据格式:
[{
"id": "1",
"name": "首页",
"sep": 1,
"path": "/text/cc"
}, {
"id": "3",
"name": "系统管理",
"path": "/text/cc",
"sep": 2,
"children": [{
"id": "3-1",
"name": "菜单管理",
"sep": 11,
"path": "/text/cc",
"children": [{
"id": "3-1-1",
"name": "菜单编辑",
"sep": 444,
"path": "/text/cc"
}]
}]
}, {
"id": "2",
"name": "资产管理",
"path": "/text/cc",
"sep": 4,
"children": [{
"id": "2-2",
"name": "资产管理2",
"sep": 11,
"path": "/text/cc"
}, {
"id": "2-1",
"name": "资产管理1",
"sep": 33,
"path": "/text/cc"
}, {
"id": "2-3",
"name": "资产管理3",
"sep": 55,
"path": "/text/cc"
}]
}]
其他相关联的数据格式处理:
* 喜欢可点赞/ 收藏/ 评论,给我动力持续更新哒!\‘▽′/