将树的某个叶子节点向上提一个level
我这里要求把同级里面的users提上一个层级
处理方法与后端返回的数据结构
遇到的问题
修改原数据的时候一直修改不了
javascript
function pushChild(items) {
let itemsChild = []
if(!items) return
for(let i=0; i<items.length;i++) {
if(items[i].users) {
itemsChild = [...itemsChild,...items[i].users]
}
pushChild(items[i].childs)
}
// items = [...items,...itemsChild] 错误的修改方式
// items = items.concat(itemsChild) 错误的修改方式
// 上面都对items 重新分配的地址空间
items.push(...itemsChild)
console.log(items);
}
const res = [
{
label: '1',
value: '1',
childs: [{
label: '1.1',
value: '1.1',
users: [{
label:'1.1-1',
value:'1.1-1'
}]
},
{
label: '1.2',
value: '1.2',
},
{
label: '1.3',
value: '1.3',
},
],
users: [{
label: '1-1',
value: '1-1',
}]
}, {
label: '2',
value: '2',
childs: [{
label: '2.1',
value: '2.1',
users: [{
label:'2.1-1',
value:'2.1-1'
}]
},
{
label: '2.2',
value: '2.2',
},
{
label: '2.3',
value: '2.3',
},
],
users: [{
label: '2-1',
value: '2-1',
}]
}, {
label: '3',
value: '3',
childs: [{
label: '3.1',
value: '3.1',
users: [{
label:'3.1-1',
value:'3.1-1'
}]
},
{
label: '3.2',
value: '3.2',
},
{
label: '3.3',
value: '3.3',
},
],
users: [{
label: '3-1',
value: '3-1',
}]
}, {
label: '4',
value: '4',
childs: [{
label: '4.1',
value: '4.1',
users: [{
label:'4.1-1',
value:'4.1-1'
}]
},
{
label: '4.2',
value: '4.2',
},
{
label: '4.3',
value: '4.3',
},
],
users: [{
label: '4-1',
value: '4-1',
}]
}]