菜单数组扁平化处理生成tree格式
let data = [
{
"menu_id": "1",
"menu_name": "系统管理",
"parent_id": "0",
"order_num": "1"
},
{
"menu_id": "2",
"menu_name": "系统监控",
"parent_id": "0",
"order_num": "2"
},
{
"menu_id": "100",
"menu_name": "用户管理",
"parent_id": "1",
"order_num": "1"
},
{
"menu_id": "101",
"menu_name": "角色管理",
"parent_id": "1",
"order_num": "2"
},
{
"menu_id": "102",
"menu_name": "菜单管理",
"parent_id": "1",
"order_num": "3"
},
{
"menu_id": "109",
"menu_name": "在线用户",
"parent_id": "2",
"order_num": "1"
},
{
"menu_id": "110",
"menu_name": "定时任务",
"parent_id": "2",
"order_num": "2"
},
{
"menu_id": "111",
"menu_name": "数据监控",
"parent_id": "2",
"order_num": "3"
}
];
let tree = data.reduce((prev, curr, i, arr) => {
let children = arr.filter(v => v.parent_id === curr.menu_id)
curr.children = children.sort((a, b) => a.order_num - b.order_num);
if(!curr.parent_id || curr.parent_id === "0") prev.push(curr);
return prev;
}, []).sort((a, b) => a.order_num - b.order_num);
console.log(tree);
数组去重
let datas = [1,2,3,'4',3,5,6,4,6,7,'a','b','b','c','a','5'];
let data = datas.filter((item, i, arr) => arr.indexOf(item, 0) === i);
console.log(data);
字符串字符个数统计
let str = 'abbcccddddeeeee1122333';
let result = [...str].reduce((prev, curr) => {
prev[curr] ? prev[curr]++ : prev[curr]=1;
return prev
} , {});
console.log(result);