美文网首页
2018-06-28 前端 treedata转array

2018-06-28 前端 treedata转array

作者: 泰_3fa6 | 来源:发表于2018-06-28 14:15 被阅读0次
     [{
        title: '0-0',
        key: '0-0',
        parent_id: 0,
        children: [{
            title: '0-0-0',
            key: '0-0-0',
            parent_id: "0-0",
            children: [
                {title: '0-0-0-0', key: '0-0-0-0', parent_id: '0-0-0',},
                {title: '0-0-0-1', key: '0-0-0-1', parent_id: '0-0-0',},
                {title: '0-0-0-2', key: '0-0-0-2', parent_id: '0-0-0',},
            ],
        },
            {
                title: '0-0-1',
                key: '0-0-1',
                parent_id: '0-0',
                children: [
                    {title: '0-0-1-0', key: '0-0-1-0', parent_id: '0-0-1',},
                    {title: '0-0-1-1', key: '0-0-1-1', parent_id: '0-0-1',},
                    {title: '0-0-1-2', key: '0-0-1-2', parent_id: '0-0-1',},
                ],
            }, {
                parent_id: '0-0',
                title: '0-0-2',
                key: '0-0-2',
            }],
    },
        {
            title: '0-1',
            key: '0-1',
            parent_id: 0,
            children: [
                {title: '0-1-0-0', key: '0-1-0-0', parent_id: '0-1',},
                {title: '0-1-0-1', key: '0-1-0-1', parent_id: '0-1',},
                {title: '0-1-0-2', key: '0-1-0-2', parent_id: '0-1',},
            ],
        },
        {
            title: '0-2',
            key: '0-2',
            parent_id: 0,
        }];
    

    转成

    {
        "0": {
            "0-0": {
                "title": "0-0",
                "key": "0-0",
                "parent_id": 0
            },
            "0-1": {
                "title": "0-1",
                "key": "0-1",
                "parent_id": 0
            },
            "0-2": {
                "title": "0-2",
                "key": "0-2",
                "parent_id": 0
            }
        },
        "0-0": {
            "0-0-0": {
                "title": "0-0-0",
                "key": "0-0-0",
                "parent_id": "0-0"
            },
            "0-0-1": {
                "title": "0-0-1",
                "key": "0-0-1",
                "parent_id": "0-0"
            },
            "0-0-2": {
                "parent_id": "0-0",
                "title": "0-0-2",
                "key": "0-0-2"
            }
        },
        "0-0-0": {
            "0-0-0-0": {
                "title": "0-0-0-0",
                "key": "0-0-0-0",
                "parent_id": "0-0-0"
            },
            "0-0-0-1": {
                "title": "0-0-0-1",
                "key": "0-0-0-1",
                "parent_id": "0-0-0"
            },
            "0-0-0-2": {
                "title": "0-0-0-2",
                "key": "0-0-0-2",
                "parent_id": "0-0-0"
            }
        },
        "0-0-1": {
            "0-0-1-0": {
                "title": "0-0-1-0",
                "key": "0-0-1-0",
                "parent_id": "0-0-1"
            },
            "0-0-1-1": {
                "title": "0-0-1-1",
                "key": "0-0-1-1",
                "parent_id": "0-0-1"
            },
            "0-0-1-2": {
                "title": "0-0-1-2",
                "key": "0-0-1-2",
                "parent_id": "0-0-1"
            }
        },
        "0-1": {
            "0-1-0-0": {
                "title": "0-1-0-0",
                "key": "0-1-0-0",
                "parent_id": "0-1"
            },
            "0-1-0-1": {
                "title": "0-1-0-1",
                "key": "0-1-0-1",
                "parent_id": "0-1"
            },
            "0-1-0-2": {
                "title": "0-1-0-2",
                "key": "0-1-0-2",
                "parent_id": "0-1"
            }
        }
    }
    

    代码

    var data = [{
        title: '0-0',
        key: '0-0',
        parent_id: 0,
        children: [{
            title: '0-0-0',
            key: '0-0-0',
            parent_id: "0-0",
            children: [
                {title: '0-0-0-0', key: '0-0-0-0', parent_id: '0-0-0',},
                {title: '0-0-0-1', key: '0-0-0-1', parent_id: '0-0-0',},
                {title: '0-0-0-2', key: '0-0-0-2', parent_id: '0-0-0',},
            ],
        },
            {
                title: '0-0-1',
                key: '0-0-1',
                parent_id: '0-0',
                children: [
                    {title: '0-0-1-0', key: '0-0-1-0', parent_id: '0-0-1',},
                    {title: '0-0-1-1', key: '0-0-1-1', parent_id: '0-0-1',},
                    {title: '0-0-1-2', key: '0-0-1-2', parent_id: '0-0-1',},
                ],
            }, {
                parent_id: '0-0',
                title: '0-0-2',
                key: '0-0-2',
            }],
    },
        {
            title: '0-1',
            key: '0-1',
            parent_id: 0,
            children: [
                {title: '0-1-0-0', key: '0-1-0-0', parent_id: '0-1',},
                {title: '0-1-0-1', key: '0-1-0-1', parent_id: '0-1',},
                {title: '0-1-0-2', key: '0-1-0-2', parent_id: '0-1',},
            ],
        },
        {
            title: '0-2',
            key: '0-2',
            parent_id: 0,
        }];
    import Map from 'lodash.map'
    import Merge from 'lodash.merge'
    
    function treeToArray(tree, array) {
        for (var i = 0; i < tree.length; i++) {
            var item = tree[i]
            var copyItem = JSON.parse(JSON.stringify(item))
            delete copyItem.children
            array[item.parent_id] = Merge(array[item.parent_id], {})
            array[item.parent_id][copyItem.key] = copyItem
            if (item.children && item.children.length >= 0) {
                treeToArray(item.children, array)
            }
        }
    }
    
    var adpaterData = {}
    treeToArray(data, adpaterData)
    cc(adpaterData)
    export default adpaterData
    

    相关文章

      网友评论

          本文标题:2018-06-28 前端 treedata转array

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