JSFiddle - React, Tailwind, and code Playground

HTML

<pre>
</pre>

JavaScript

var cData = [{
    "name": "Jack Doe",
    "desc": "Jack",
    "values": [{
        "id": "615",
        "subject": "Physics",
        "Grade": "B"
    }, {
        "id": "616",
        "subject": "Chemistry",
        "Grade": "A"
    }]
},
{
    "name": "Jane Doe",
    "desc": "Jane",
    "values": [{
        "id": "715",
        "subject": "Maths",
        "Grade": "A+"
    }]
},
{
    "name": "Jack Doe",
    "desc": "Jack",
    "values": [{
        "id": "617",
        "subject": "Maths",
        "Grade": "A"
    }]
},
{
    "name": "Jane Doe",
    "desc": "Jane",
    "values": [{
        "id": "716",
        "subject": "Physics",
        "Grade": "B"
    }]
}]

function mergeArray(array) {
    var merged = {};
    $.each(array, function() {
        var item = this;
        if (typeof merged[item.name] != 'undefined') {
            $.merge(merged[item.name].values, item.values);
        }
        else {
            merged[item.name] = item;
        }
    });
    
    return getObjectValues(merged);
}

function getObjectValues(obj) {
    var values = [];
    $.each(obj, function(key,valueObj){
        values.push(valueObj);
    });
    return values;
}

           
           
$('pre').text(JSON.stringify(mergeArray(cData)));