I have the following which is almost where I need to be
var baseData= [{
    "id": 1,
    "username": "JJ",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "J",
    "surname": "J",
    "band": "Band 7",
    "role": "Developer",
    "competency": "Kicks",
    "employeeNumber": null,
    "name": "Sedation"
}, {
    "id": 1,
    "username": "JJ",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "J",
    "surname": "J",
    "band": "Band 7",
    "role": "Developer",
    "competency": "Kicks",
    "employeeNumber": null,
    "name": "Safeguarding Level 3"
}, {
    "id": 1,
    "username": "JJ",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "J",
    "surname": "J",
    "band": "Band 7",
    "role": "Developer",
    "competency": "Kicks",
    "employeeNumber": null,
    "name": "Safeguarding Level 2"
}, {
    "id": 276,
    "username": "IH",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "I",
    "surname": "Hashmi",
    "band": "Band 8",
    "role": "Chap",
    "competency": "Pie",
    "employeeNumber": null,
    "name": "Safeguarding Level 3"
}, {
    "id": 276,
    "username": "IH",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "I",
    "surname": "Hashmi",
    "band": "Band 8",
    "role": "Chap",
    "competency": "Pie",
    "employeeNumber": null,
    "name": "Safeguarding Level 2"
}, {
    "id": 276,
    "username": "IH",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "I",
    "surname": "Hashmi",
    "band": "Band 8",
    "role": "Chap",
    "competency": "Pie",
    "employeeNumber": null,
    "name": "Major Incident"
}, {
    "id": 277,
    "username": "LC",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "L",
    "surname": "C",
    "band": "Band 9",
    "role": "Lady",
    "competency": "Pizza",
    "employeeNumber": null,
    "name": "WMH ED Nursing"
}, {
    "id": 277,
    "username": "LC",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "L",
    "surname": "C",
    "band": "Band 9",
    "role": "Lady",
    "competency": "Pizza",
    "employeeNumber": null,
    "name": "Sedation"
}, {
    "id": 277,
    "username": "LC",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "L",
    "surname": "C",
    "band": "Band 9",
    "role": "Lady",
    "competency": "Pizza",
    "employeeNumber": null,
    "name": "Safeguarding Level 3"
}, {
    "id": 281,
    "username": "MJ",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "M",
    "surname": "J",
    "band": "Band 9",
    "role": "Solutions Developer Manager",
    "competency": "Ninja",
    "employeeNumber": "23546329",
    "name": "Digital Team"
}, {
    "id": 283,
    "username": "CG",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "C",
    "surname": "G",
    "band": "5",
    "role": "Senior Solutions Developer",
    "competency": "LOL",
    "employeeNumber": "23546205",
    "name": "WMH ED Medics"
}, {
    "id": 283,
    "username": "CG",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "C",
    "surname": "G",
    "band": "5",
    "role": "Senior Solutions Developer",
    "competency": "LOL",
    "employeeNumber": "23546205",
    "name": "WMH ED Nursing"
}, {
    "id": 283,
    "username": "CG",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "C",
    "surname": "G",
    "band": "5",
    "role": "Senior Solutions Developer",
    "competency": "LOL",
    "employeeNumber": "23546205",
    "name": "Sedation"
}, {
    "id": 283,
    "username": "CG",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "C",
    "surname": "G",
    "band": "5",
    "role": "Senior Solutions Developer",
    "competency": "LOL",
    "employeeNumber": "23546205",
    "name": "Safeguarding Level 3"
}, {
    "id": 283,
    "username": "CG",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "C",
    "surname": "G",
    "band": "5",
    "role": "Senior Solutions Developer",
    "competency": "LOL",
    "employeeNumber": "23546205",
    "name": "Safeguarding Level 2"
}, {
    "id": 283,
    "username": "CG",
    "lastLoggedIn": null,
    "archive": false,
    "forename": "C",
    "surname": "G",
    "band": "5",
    "role": "Senior Solutions Developer",
    "competency": "LOL",
    "employeeNumber": "23546205",
    "name": "Major Incident"
}, {
    "id": 284,
    "username": "Bob",
    "lastLoggedIn": null,
    "archive": true,
    "forename": "Bob",
    "surname": "Bob",
    "band": "Bob",
    "role": "Bob",
    "competency": "Bob",
    "employeeNumber": "XXX",
    "name": "WMH ED Medics"
}, {
    "id": 284,
    "username": "Bob",
    "lastLoggedIn": null,
    "archive": true,
    "forename": "Bob",
    "surname": "Bob",
    "band": "Bob",
    "role": "Bob",
    "competency": "Bob",
    "employeeNumber": "XXX",
    "name": "WMH ED Nursing"
}, {
    "id": 284,
    "username": "Bob",
    "lastLoggedIn": null,
    "archive": true,
    "forename": "Bob",
    "surname": "Bob",
    "band": "Bob",
    "role": "Bob",
    "competency": "Bob",
    "employeeNumber": "XXX",
    "name": "Sedation"
}, {
    "id": 284,
    "username": "Bob",
    "lastLoggedIn": null,
    "archive": true,
    "forename": "Bob",
    "surname": "Bob",
    "band": "Bob",
    "role": "Bob",
    "competency": "Bob",
    "employeeNumber": "XXX",
    "name": "Safeguarding Level 3"
}, {
    "id": 284,
    "username": "Bob",
    "lastLoggedIn": null,
    "archive": true,
    "forename": "Bob",
    "surname": "Bob",
    "band": "Bob",
    "role": "Bob",
    "competency": "Bob",
    "employeeNumber": "XXX",
    "name": "Safeguarding Level 2"
}, {
    "id": 284,
    "username": "Bob",
    "lastLoggedIn": null,
    "archive": true,
    "forename": "Bob",
    "surname": "Bob",
    "band": "Bob",
    "role": "Bob",
    "competency": "Bob",
    "employeeNumber": "XXX",
    "name": "Major Incident"
}];
    
    var newData = [];
    baseData.forEach(function(item, index) {
      if (newData.length === 0) {
        newData.push(item);
        
      } else {
        var dIndex = -1;
        newData.forEach(function(itm, idx) {
          if (item.id === itm.id) dIndex = idx;
        });
        
        if (dIndex !== -1) {
          var oldname = newData[dIndex].name;
          
          if (typeof(oldname).toString() === 'string') {
            newData[dIndex].name = [oldname, item.name];
          }
        } else {
          newData.push(item);
        }
      }
    });
    console.log(newData);
jsFiddle: https://jsfiddle.net/jeqdbn12/
This groups/reduces the object by the key called "name".
However it seems to nest the values for key, so using the array above, for Bob, I get:
{
  archive: true,
  band: "Bob",
  competency: "Bob",
  employeeNumber: "XXX",
  forename: "Bob",
  id: 284,
  lastLoggedIn: null,
  name: [[[[["WMH ED Medics", "WMH ED Nursing"], "Sedation"], "Safeguarding Level 3"], "Safeguarding Level 2"], "Major Incident"],
  role: "Bob",
  surname: "Bob",
  username: "Bob"
}
However, what I need is for the key called "name" to be an array of values or a comma delimited string. Any advice?
So I need something like:
...
name: ["value1","value2"]
...
 
     
    