JavaScript
const bandsArray = [
{
forename: 'Jack',
surname: 'Bruce',
band: 'Cream',
},
{
forename: 'Eric',
surname: 'Clapton',
band: 'Cream',
},
{
forename: 'Ginger',
surname: 'Baker',
band: 'Cream',
},
{
forename: 'Mick',
surname: 'Fleetwood',
band: 'Fleetwood Mac',
},
{
forename: 'John',
surname: 'McVie',
band: 'Fleetwood Mac',
},
{
forename: 'Christine',
surname: 'McVie',
band: 'Fleetwood Mac',
},
{
forename: 'Stevie',
surname: 'Nicks',
band: 'Fleetwood Mac',
},
{
forename: 'Billy',
surname: 'Burnette',
band: 'Fleetwood Mac',
},
{
forename: 'Rick',
surname: 'Vito',
band: 'Fleetwood Mac',
},
{
forename: 'Jim',
surname: 'Morrison',
band: 'Doors, The',
},
{
forename: 'Ray',
surname: 'Manzarek',
band: 'Doors, The',
},
{
forename: 'Robby',
surname: 'Krieger',
band: 'Doors, The',
},
{
forename: 'John',
surname: 'Densmore',
band: 'Doors, The',
},
{
forename: 'Patty',
surname: 'Sullivan',
band: 'Doors, The',
},
{
forename: 'Brian',
surname: 'May',
band: 'Queen',
},
{
forename: 'Roger',
surname: 'Taylor',
band: 'Queen',
},
{
forename: 'Freddie',
surname: 'Mercury',
band: 'Queen',
},
{
forename: 'John',
surname: 'Deacon',
band: 'Queen',
},
];
function dynamicSortComparator(propertyName) {
return (objA, objB) => (objA[propertyName] < objB[propertyName] ? -1 : 1);
}
bandsArray.sort(dynamicSortComparator('surname'));
console.log(bandsArray);
bandsArray.sort(dynamicSortComparator('forename'));
console.log(bandsArray);