https://github.com/orderandch4os/orderandchaos-sorted
Sort array of objects by column
https://github.com/orderandch4os/orderandchaos-sorted
arr objects sorting tables
Last synced: about 1 year ago
JSON representation
Sort array of objects by column
- Host: GitHub
- URL: https://github.com/orderandch4os/orderandchaos-sorted
- Owner: OrderAndCh4oS
- Created: 2020-09-08T18:27:47.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-09T18:15:07.000Z (almost 6 years ago)
- Last Synced: 2025-02-15T16:49:08.258Z (over 1 year ago)
- Topics: arr, objects, sorting, tables
- Language: TypeScript
- Homepage: https://orderandch4os.github.io/orderandchaos-sorted/
- Size: 1.52 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# @orderandchaos/sorted
> Sort an array of objects by it's keys
[](https://www.npmjs.com/package/@orderandchaos/sorted) [](https://standardjs.com)
## Install
```bash
npm install --save @orderandchaos/sorted
```
## Usage
```tsx
import sortOnColumn, { ISortColumns, makeSortColumns } from '@orderandchaos/sorted';
interface IObj {
name: string,
value: number,
misc: any
}
const arr: IObj[] = [
{name: 'a', value: 3, misc: null},
{name: 'b', value: 2, misc: undefined},
{name: 'c', value: 1, misc: 0},
{name: 'd', value: 0, misc: ''},
]
const sortColumns: ISortColumns = makeSortColumns(arr);
// Sort on 'name'
const sortedByNameAsc = arr.sort(sortOnColumn('name', sortColumns.name));
console.log('Name Asc', sortedByNameAsc);
sortColumns.name = !sortColumns.name;
const sortedByNameDesc = arr.sort(sortOnColumn('name', sortColumns.name));
console.log('Name Desc', sortedByNameDesc);
// Sort on 'value'
const sortedByValueAsc = arr.sort(sortOnColumn('value', sortColumns.value));
console.log('Value Asc', sortedByValueAsc);
sortColumns.value = !sortColumns.value;
const sortedByValueDesc = arr.sort(sortOnColumn('value', sortColumns.value));
console.log('Value Desc', sortedByValueDesc);
```
## License
MIT © [sarcoma](https://github.com/sarcoma)