You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

sortHelpers.js 611B

1234567891011121314151617181920
  1. /* eslint-disable no-prototype-builtins */
  2. export const compare = (key, order = 'asc') => {
  3. return function innerSort(a, b) {
  4. if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
  5. // property doesn't exist on either object
  6. return 0;
  7. }
  8. const varA = typeof a[key] === 'string' ? a[key].toUpperCase() : a[key];
  9. const varB = typeof b[key] === 'string' ? b[key].toUpperCase() : b[key];
  10. let comparison = 0;
  11. if (varA > varB) {
  12. comparison = 1;
  13. } else if (varA < varB) {
  14. comparison = -1;
  15. }
  16. return order === 'desc' ? comparison * -1 : comparison;
  17. };
  18. };