1.树形结构转数组
const tree = [
{
id: 1,
name: "Node 1",
children: [
{ id: 2, name: "Node 1.1" },
{ id: 3, name: "Node 1.2" },
{
id: 4,
name: "Node 1.3",
children: [{ id: 5, name: "Node 1.3.1" }],
},
],
},
];
//预期结果
[
{ id: 1, name: 'Node 1', parentId: null },
{ id: 2, name: 'Node 1.1', parentId: 1 },
{ id: 3, name: 'Node 1.2', parentId: 1 },
{ id: 4, name: 'Node 1.3', parentId: 1 },
{ id: 5, name: 'Node 1.3.1', parentId: 4 },
]
const convert = (tree,parentId=null)=>{
return tree.reduce((result,node)=>{
let convertNode = {id:node.id,name:node.name,parentId:parentId}
result.push(convertNode)
if(node.children){
let children = convert(node.children,node.id)
result = result.concat(children)
}
return result
},[])
}
2.字符串str2和字符串str1,编写函数判断str1重新排序后是否能组成str2
let str1 = "asdf", str2 = "ab"
function resort(str1, str2) {
if (str2.length == 0 || str1.length == 0) return false
for (let i = 0; i < str2.length; i++) {
if (str1.indexOf(str2[i]) != -1) {
str1.replace(str2[i], "")
} else {
return false
}
}
return true
}
console.log(resort(str1, str2))