I have an array of objects (Employee {role: string, members: string []})
array = [{
  role: 'doctor',
  fullName: 'x'
}, {
  role: 'nurse',
  fullName: 'y'
}, {
  role: 'doctor',
  fullName: 'z'
}]
and I want to group objects by role in a new array (result) in typescript
result = [{
    role: 'doctor',
    members: ['x', 'z']
  } {
    role: 'nurse',
    members: ['y']
  }
}
My code:
result = array.map(function(pemp: any) {
  if (!array.some(function(el: any) {
    return el.role === pemp.role;
  })) {
    return new Employee(pemp.role, pemp.fullName);
  } else {
    var pos = this.result.map(function(e: any) {
      return e.role;
    }).indexOf(pemp.role);
    this.result[pos].members.push(pemp.fullName)
  }
});
 
     
    