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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,221评论 0 13
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,025评论 3 119
  • 新年目标: 1.通过注电考试。看了几道线路题,对比载,弧垂还有风偏角有了些初步了解,但感觉看得不算特别多。+0.8...
    蜗牛阿甘阅读 94评论 0 0
  • 为什么人世间没有简简单单就是“我爱你”?为什么“一生一世”不能说到就做到?为什么“去它的世俗”实在没办法说...
    等秋天的落叶阅读 96评论 0 0