const array = [1, 2, [3 ]]
const flat=function (array){
let result=[]
for(let item of array){
if(Array.isArray(item)){
flat(item).forEach(element => {
result.push(element)
});
}
else{
result.push(item)
}
}
return result
}
const flat =function (array){
return array.reduce((prev,cur)=>{
return prev.concat(Array.isArray(cur)?flat(cur):cur)
},[])
}
function flat(arr){
let arr2=[]
arr.forEach((item)=>{
if(Array.isArray(item)){
arr2.push(...flat(item))
}else{
arr2.push(item)
}
})
return arr2
}
console.log(flat(array))
const array = [
{ id: 1, name: '部门1', parentId: 0 },
{ id: 2, name: '部门2', parentId: 1 },
{ id: 3, name: '部门3', parentId: 1 },
{ id: 4, name: '部门4', parentId: 2 },
{ id: 5, name: '部门5', parentId: 2 },
{ id: 6, name: '部门6', parentId: 3 },
{ id: 7, name: '部门7', parentId: 4 },
];
function arrtotree(arr,id=0){
return arr.filter((item)=>item.parentId==id).map((item)=>{
let child=arrtotree(arr,item.id)
if(child.length>0){
item.child=child
}
return item
})
}
console.log(arrtotree(array))
const tree = {
id: 1,
name: '部门1',
children: [
{
id: 2,
name: '部门2',
children: [
{
id: 4,
name: '部门4',
children: [
{
id: 7,
name: '部门7',
children: []
}
]
},
{
id: 5,
name: '部门5',
children: []
}
]
},
{
id: 3,
name: '部门3',
children: [
{
id: 6,
name: '部门6',
children: []
}
]
}
]
};
let treeToArr=(tree)=>{
let res=[]
res.push({id:tree.id,name:tree.name})
tree.children.forEach((item)=>{
res.push(...treeToArr(item))
})
return res
}
console.log(treeToArr(tree))
function treeToArray(node, parent = null) {
let result = [];
result.push({ id: node.id, name: node.name, parent });
node.children.forEach(child => {
result = result.concat(treeToArray(child, node.id));
});
return result;
}
let resultArray = treeToArray(tree);
console.log(resultArray);