数组对象格式转化

原本的数据格式:

let arr = [
    {
        "id": 28,
        "name": "大区一组(张某某)",
        "email": "zhanmoumou@1.cn",
        "children": [
            {
                "id": 25,
                "email": "贺某某@1.cn",
                "name": "贺某某",
                "children": [
                    {
                        "sale": [
                            {
                                "id": 48,
                                "name": "SYS",
                                "email": "services@1.cn"
                            },
                            {
                                "id": 98,
                                "name": "测试账号2",
                                "email": "ceshi_account_two@1.cn"
                            }
                        ],
                        "operation": [
                            {
                                "id": 27,
                                "name": "崔某某",
                                "email": "cui@1.cn"
                            },
                            {
                                "id": 88,
                                "name": "丽丽",
                                "email": "lilu@1.cn"
                            },
                        ],
                        "sale_manager": [
                            {
                                "id": 15,
                                "name": "原小小",
                                "email": "yuanxiao@1.cn"
                            },
                            {
                                "id": 87,
                                "name": "测试帐号",
                                "email": "ceshi@1.cn"
                            }
                        ]
                    }
                ]
            },
            {
                "id": null,
                "email": null,
                "name": null,
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            }
        ]
    },
    {
        "id": null,
        "name": "大区二组(暂无)",
        "email": null,
        "children": [
            {
                "id": null,
                "email": null,
                "name": null,
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            },
            {
                "id": null,
                "email": null,
                "name": null,
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            }
        ]
    },
    {
        "id": null,
        "name": "大区三组(暂无)",
        "email": null,
        "children": [
            {
                "id": null,
                "email": null,
                "name": null,
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            },
            {
                "id": null,
                "email": null,
                "name": null,
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            }
        ]
    }
]

转化后的数据格式:

let brr = [
    {
        "key": 28,
        "name": "大区一组(张某某)",
        "email": "zhanmoumou@1.cn",
        "value":  "大区一组(张某某)",
        "children": [
            {
                "key": 25,
                "email": "hemoumou@1.cn",
                "name": "贺某某",
                "value": "贺某某",
                "children": [
                    {
                        [
                            {
                                "key": 48,
                                "name": "SYS",
                                "value": "SYS",
                                "email": "services@1.cn",
                            },
                            {
                                "key": 98,
                                "name": "测试账号2",
                                "value": "测试账号2",
                                "email": "ceshi_account_two@1.cn"
                            },
                        ],
                        [
                            {
                                "key": 27,
                                "name": "崔某某",
                                "value": "崔某某",
                                "email": "cuimoumou@1.cn"
                            },
                            {
                                "key": 88,
                                "name": "丽丽",
                                "value": "丽丽",
                                "email": "lilu@1.cn"
                            },
                        ],
                        [
                            {
                                "key": 15,
                                "name": "原小小",
                                "email": "yuanxiao@y1.cn"
                            },
                            {
                                "key": 87,
                                "name": "测试帐号",
                                "email": "ceshi@1.cn"
                            }
                        ]
                    }
                ]
            },
            {
                "key": null,
                "email": null,
                "name": "暂无",
                "value": "暂无",
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            }
        ],
    },
    {
        "key": null,
        "name": "大区二组(暂无)",
        "value": "大区二组(暂无)"
        "email": null,
        "children": [
            {
                "key": null,
                "email": null,
                "name": "暂无",
                "value": "暂无",
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            },
            {
                "key": null,
                "email": null,
                "name": "暂无",
                "value": "暂无",
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            }
        ]
    },
    {
        "key": null,
        "name": "大区三组(暂无)",
        "value": "大区三组(暂无)",
        "email": null,
        "children": [
            {
                "key": null,
                "email": null,
                "name": null,
                "value": null,
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            },
            {
                "key": null,
                "email": null,
                "name": null,
                "value": null,
                "children": [
                    {
                        "sale": [],
                        "operation": [],
                        "sale_manager": []
                    }
                ]
            }
        ]
    },
];

我封装了一个函数处理,

function getTreeData (tree) {
    let getData = [];
    tree.map((item, key) => {
        let obj = {}
        obj = {
            "key": item.id,
            "label": item.name || '暂无',
            "value": item.name || '暂无',
            "email": item.email,
        }
        if (item.children) {
            getData.push(Object.assign(
            {"children" :getTreeData(item.children)}, obj))
        } else {
            getData.push(obj);
        }
    })
    return getData
}

但是由于最内层的数据结构不同,最内层处理的不对,

阅读 988
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题