1234567891011121314151617181920 |
- /* eslint-disable no-prototype-builtins */
- export const compare = (key, order = 'asc') => {
- return function innerSort(a, b) {
- if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
- // property doesn't exist on either object
- 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;
- };
- };
|