2018-06-28 前端 treedata转array

 [{
    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)