123456789101112131415161718192021222324252627282930313233343536 |
- type numberObj = {
- [x: string]: number;
- };
- export const descendingComparator = (
- a: numberObj,
- b: numberObj,
- orderBy: React.ReactText
- ) => {
- if (b[orderBy] < a[orderBy]) {
- return -1;
- }
- if (b[orderBy] > a[orderBy]) {
- return 1;
- }
- return 0;
- };
- export const getComparator = (order: string, orderBy: string) => {
- return order === 'desc'
- ? (a: numberObj, b: numberObj) => descendingComparator(a, b, orderBy)
- : (a: numberObj, b: numberObj) => -descendingComparator(a, b, orderBy);
- };
- export const stableSort = (
- array: any[],
- comparator: { (a: numberObj, b: numberObj): number }
- ) => {
- const stabilizedThis = array.map((el, index) => [el, index]);
- stabilizedThis.sort((a, b) => {
- const order = comparator(a[0], b[0]);
- if (order !== 0) return order;
- return a[1] - b[1];
- });
- return stabilizedThis.map(el => el[0]);
- };
|