https://github.com/rexlow/deepsorter
A dead simple library to sort objects and arrays regardless of how deep it is
https://github.com/rexlow/deepsorter
array deep object sort
Last synced: about 1 year ago
JSON representation
A dead simple library to sort objects and arrays regardless of how deep it is
- Host: GitHub
- URL: https://github.com/rexlow/deepsorter
- Owner: rexlow
- License: mit
- Created: 2021-06-29T14:41:04.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-29T16:32:56.000Z (almost 5 years ago)
- Last Synced: 2025-05-18T18:54:28.481Z (about 1 year ago)
- Topics: array, deep, object, sort
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/deepsorter
- Size: 51.8 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# deepSorter 🎡



[](https://github.com/rexlow/deepSorter/issues)
Originally **deepSorter** is made to make my life easier dealing with payment signature generation work in my company.
**deepSorter** is designed to sort any `object` or `array` alphabetically (or in its reverse order) regardless of numbers of layers deep.
Feel free to improve this library via a handsome PR 🤝
## Installation
```
npm install deepsorter
```
or
```
yarn add deepsorter
```
## Usage and example
### Example object with 4 layers deep
```
import deepSorter from "deepsorter"
// example data
const data = {
"c": ["APPLE", "ORANGE", "BANANA"],
"a": {
"dog": {
"color": "gold",
"breed": "a dog",
"happiness": ["SAD", "HAPPY", "EXCITED"]
},
"numbers": [8.5, "WORLD", 1, 50, "HELLO", 2],
"cat": {
"happiness": ["HAPPY", "SAD", "EXCITED"],
"breed": "a cat",
"color": "orange",
},
"deepArray": [
{
"foo": {
"name": "Rex",
"age": 26,
"interests": ["coding", "problem solving", "etc etc"]
},
"bar": {
"name": "Low",
"age": 100,
"interests": ["self driving cars", "artificial intelligence"]
}
}
]
}
}
```
### Sort Alphabatically
```
deepSorter(data)
{
"a": {
"cat": {
"breed": "a cat",
"color": "orange",
"happiness": ["EXCITED", "HAPPY", "SAD"]
},
"deepArray": [
{
"bar": {
"age": 100,
"interests": ["artificial intelligence", "self driving cars"],
"name": "Low",
},
"foo": {
"age": 26,
"interests": ["coding", "etc etc", "problem solving"],
"name": "Rex",
}
}
],
"dog": {
"breed": "a dog",
"color": "gold",
"happiness": ["EXCITED", "HAPPY", "SAD"]
},
"numbers": [1, 2, 8.5, 50, "HELLO", "WORLD"]
},
"c": ["APPLE", "BANANA", "ORANGE"]
}
```
### Sort in reverse order
```
deepSorter(data, reverse=true)
{
"c": ["ORANGE", "BANANA", "APPLE"],
"a": {
"numbers": ["WORLD", "HELLO", 50, 8.5, 2, 1],
"dog": {
"happiness": ["SAD", "HAPPY", "EXCITED"],
"color": "gold",
"breed": "a dog"
},
"deepArray": [
{
"foo": {
"name": "Rex",
"interests": ["problem solving", "etc etc", "coding"],
"age": 26,
},
"bar": {
"name": "Low",
"interests": ["self driving cars", "artificial intelligence"],
"age": 100,
}
}
],
"cat": {
"happiness": ["SAD", "HAPPY", "EXCITED"],
"color": "orange",
"breed": "a cat"
}
}
```
## Test
```
yarn run test
```