美文网首页
树状结构扁平化

树状结构扁平化

作者: hszz | 来源:发表于2021-12-26 18:08 被阅读0次
/**
 * @description 树状数组扁平化
 * @param { Array } tree        树状结构数组
 * @param { Array } arr         扁平化后的数组
 * @param { String } childrenKey 子节点键名
 * @return { Array }            扁平化后的数组
 */
export function flatten(tree = [], arr = [], childrenKey = 'children') {

    tree.forEach((item) => {

        const children = item[childrenKey]

        children ? flatten(children, arr, childrenKey) : arr.push(item)
    })
    
    return arr
}
  • 使用
// 例如有该树状数据
treeData: [
    {
        childrenData: [
            {
                name: "aaa",
                cid: 2,
            },
        ],
    },
    {
        childrenData: [
            {
                childrenData: [
                    {
                        name: "bbb",
                        cid: 3,
                    },
                ],
            },
        ],
    },
    {
        name: "ccc",
        cid: 1
    },
],
  • 使用扁平化数组
this.treeFlatten = flatten(this.treeData, [], 'childrenData') 
console.log(this.treeFlatten)
  • 输出结果如下
[ { "name": "aaa", "cid": 2 }, { "name": "bbb", "cid": 3 }, { "name": "ccc", "cid": 1 } ]

相关文章

网友评论

      本文标题:树状结构扁平化

      本文链接:https://www.haomeiwen.com/subject/pnbsqrtx.html