【JS】列表转换成树形结构

2019-06-19  本文已影响0人  大Q本Q
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')

上一篇下一篇

猜你喜欢

热点阅读