我有這樣一組數(shù)據(jù),想要遞歸刪除掉所有 children 為空的節(jié)點,對于這組數(shù)據(jù)來說,最后刪除完后,會得到空數(shù)據(jù)。但是我設(shè)計的方法好像行不通,請大家?guī)兔o我個思路,或者說幫忙指出我這段程序中有什么錯誤的地方,不勝感激:數(shù)據(jù)data = [
{id: 1, label: '1-1', children:
[
{id: 2, label: '1-2', children: []},
{id: 3, label: '1-3', children: []},
]
},
{id: 4, label: '2-1', children: []},
];嘗試的方法function getSelectedNode(nodeData, parent) {
nodeData.forEach(item => { if ('children' in item && item.children.length === 0) { // 使用了lodash的刪除方法
lodash.remove(parent.children, o => { return o.id === item.id
})
} else if ('children' in item && item.children.length) {
getSelectedNode(item.children, item);
}
})
}
getSelectedNode(data, data);
1 回答

瀟瀟雨雨
TA貢獻(xiàn)1833條經(jīng)驗 獲得超4個贊
既然已經(jīng)遍歷到了,為什么不直接刪掉呢?
function getSelectedNode(nodeData, parent) { nodeData.forEach(item => { if ('children' in item && item.children.length === 0) { delete item.children } else if ('children' in item && item.children.length) { getSelectedNode(item.children, item); } }) } getSelectedNode(data, data);
- 1 回答
- 0 關(guān)注
- 634 瀏覽
添加回答
舉報
0/150
提交
取消