Построить сгруппированный вложенный массив из плоского массива с тем же ключом объекта - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть плоский массив, состоящий из следующих данных

[{
        "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": ""
        }]
    }
 ]

Я искал в Интернете, но ; не мог получить желаемый результат. Я также наткнулся на этот Q / A Построить массив деревьев из плоского массива в javascript. Я пытался настроить ответ, но все еще не мог получить желаемый результат.

...