const LIST = [
{id: 8, name: '我', pId: 7},
{id: 1, name: '是'},
{id: 2, name: '浦', pId: 1},
{id: 3, name: '东', pId: 1},
{id: 4, name: '的'},
{id: 5, name: '完', pId: 4},
{id: 6, name: '金', pId: 4},
{id: 7, name: '啊', pId: 6}
];
function formateList(list, parent_key, init_value = undefined, master_key = 'id') {
let data = {formate: [], remainder: []}
list.forEach(item => data[item[parent_key] === init_value ? 'formate' : 'remainder'].push(item))
return data.formate.map(item => ({
...item,
children: formateList(data.remainder, parent_key, item[master_key])
}))
}
formateList(LIST, 'pId')
网友评论