JSFiddle - React, Tailwind, and code Playground
by Roman Fedytskyi
JavaScript
const bands = [
{ genre: 'Rap', band: 'Migos', albums: 0},
{ genre: 'Pop', band: 'Coldplay', albums: 4},
{ genre: 'Rock', band: 'Breaking Benjamins',
albums: 1}
];
function compareValues(key, order='') {
return function(a, b) {
if(!a.hasOwnProperty(key) ||
!b.hasOwnProperty(key)) {
return 0;
}
const varA = (typeof a[key] === 'string') ?
a[key].toUpperCase() : a[key];
const varB = (typeof b[key] === 'string') ?
b[key].toUpperCase() : b[key];
let comparison = 0;
if (varA > varB) {
comparison = 1;
} else if (varA < varB) {
comparison = -1;
}
return (
(order == 'desc') ?
(comparison * -1) : comparison
);
};
}
console.log(
bands.sort(compareValues('albums'))
);