首页 > 解决方案 > 从具有相同对象键的平面数组构建分组嵌套数组

问题描述

我有一个包含以下数据的平面数组

[{
        "text": "",
        "type": "true_false",
        "ans": {
            "ans_1": true,
            "ans_2": false
        },
        "correct_ans": "",
        "reason": "",
        "passage": ""
    },
    {
        "text": "",
        "type": "true_false",
        "ans": {
            "ans_1": true,
            "ans_2": false
        },
        "correct_ans": "",
        "reason": "",
        "passage": ""
    }, {
        "text": "",
        "type": "passage",
        "ans": {
            "ans_1": "",
            "ans_2": ""
        },
        "correct_ans": [],
        "reason": "",
        "passage": 3
    }, {
        "text": "",
        "type": "multichoice",
        "ans": {
            "ans_1": "",
            "ans_2": ""
        },
        "correct_ans": [],
        "reason": "",
        "passage": ""
    }, {
        "text": "",
        "type": "passage",
        "ans": {
            "ans_1": "",
            "ans_2": ""
        },
        "correct_ans": [],
        "reason": "",
        "passage": 3
    }, {
        "text": "",
        "type": "passage",
        "ans": {
            "ans_1": "",
            "ans_2": ""
        },
        "correct_ans": [],
        "reason": "",
        "passage": 5
    }
 ]

但是,我想按以下格式对数组进行分组。

  [{
        "text": "",
        "type": "true_false",
        "ans": {
            "ans_1": true,
            "ans_2": false
        },
        "correct_ans": "",
        "reason": "",
        "passage": ""
    },
    {
        "text": "",
        "type": "true_false",
        "ans": {
            "ans_1": true,
            "ans_2": false
        },
        "correct_ans": "",
        "reason": "",
        "passage": ""
    }, {
        "type": "passage",
        "passage": 3,
        "children": [{
            "text": "",
            "ans": {
                "ans_1": "",
                "ans_2": ""
            },
            "correct_ans": [],
            "reason": ""
        }, {
            "text": "",
            "ans": {
                "ans_1": "",
                "ans_2": ""
            },
            "correct_ans": [],
            "reason": ""
        }]
    }, {
        "text": "",
        "type": "multichoice",
        "ans": {
            "ans_1": "",
            "ans_2": ""
        },
        "correct_ans": [],
        "reason": "",
        "passage": ""
    }, {
        "passage": 5,
        "type": "passage",
        "children": [{
            "text": "",
            "ans": {
                "ans_1": "",
                "ans_2": ""
            },
            "correct_ans": [],
            "reason": ""
        }]
    }
 ]

我在网上搜索过,但是;无法得到我想要的结果。我还从 javascript 中的平面数组中发现了这个 Q/A构建树数组。我试图调整答案,但仍然无法得到我想要的结果。

标签: javascriptarrayslisttreenested

解决方案


推荐阅读