数组对比,根据node节点的变化,生成一个符合要求的新数组
//原数据
const arr = [
{
"id": "12020000",
"nameEn": "Group",
"children": [
{
"id": "12020100",
"nameEn": "123",
},
{
"id": "12020200",
"nameEn": "1232",
}
],
}, {
"id": "12030000",
"nameEn": "info",
"children": [
{
"id": "12030100",
"nameEn": "Level",
},
{
"id": "12030200",
"nameEn": " Class",
},
{
"id": "12030300",
"nameEn": " Trading",
},
{
"id": "12030400",
"nameEn": " Platform",
},
{
"id": "12030500",
"nameEn": " with Ecosystem",
},
{
"id": "12030600",
"nameEn": " Market",
}
]
},
{
"id": "12104000",
"nameEn": "Trading",
"children": [
{
"id": "12104100",
"nameEn": "Buy",
}, {
"id": "12104200",
"nameEn": "put",
}]
},
{
"id": "12200000",
"nameEn": "Trading",
"children": [
{
"id": "12200100",
"nameEn": "save",
}, {
"id": "12200110",
"nameEn": "save1",
},
]
},
]
// 当node的节点为
const node = ['12020100', '12030100', '12020000', '12030000']
result = [{
"id": "12020000",
"nameEn": "Group",
"children": [
{
"id": "12020100",
"nameEn": "123",
}]
}, {
"id": "12030000",
"nameEn": "info",
"children": [
{
"id": "12030100",
"nameEn": "Level",
}]
}
]
// 此时,选择了一个节点 12020200
node = ['12020100', '12030100', '12020200', '1211000', '12030000']
// result 变更为
result = [{
"id": "12030000",
"nameEn": "info",
"children": [
{
"id": "12030100",
"nameEn": "Level",
}]
}, {
"id": "12020000",
"nameEn": "Group",
"children": [
{
"id": "12020100",
"nameEn": "123",
}, {
"id": "12020200",
"nameEn": "1232",
}]
},
]
// 此时,选择了一个节点 12104100
node = ['12100100', '12030100', '12020200', '12104100', '1211000', '12030000', '12104000']
// result 变更为
result = [{
"id": "12030000",
"nameEn": "info",
"children": [
{
"id": "12030100",
"nameEn": "Level",
}]
}, {
"id": "12020000",
"nameEn": "Group",
"children": [
{
"id": "12020100",
"nameEn": "123",
}, {
"id": "12020200",
"nameEn": "1232",
}]
}, {
"id": "12104000",
"nameEn": "Trading",
"children": [
{
"id": "12104100",
"nameEn": "Buy",
}]
},]
// 此时,选择了一个节点 12030200
node = ['12100100', '12030100', '12020200', '12104100', '12030200', '1211000', '12030000', '12104000']
// result 变更为
result = [{
"id": "12020000",
"nameEn": "Group",
"children": [
{
"id": "12020100",
"nameEn": "123",
}, {
"id": "12020200",
"nameEn": "1232",
}]
}, {
"id": "12104000",
"nameEn": "Trading",
"children": [
{
"id": "12104100",
"nameEn": "Buy",
}]
}, {
"id": "12030000",
"nameEn": "info",
"children": [
{
"id": "12030100",
"nameEn": "Level",
}, {
"id": "12030200",
"nameEn": " Class",
},]
}]
从我之前的回答改的。

https://segmentfault.com/q/10...