just-order-by
Version:
Produces a new array, sorted in given order
123 lines (109 loc) • 2.1 kB
Markdown
<!-- DO NOT EDIT THIS FILE! THIS FILE WAS AUTOGENERATED BY TEMPLATE-MATE -->
<!-- SEE https://github.com/angus-c/just/blob/master/CONTRIBUTING.md#readme-template -->
## just-order-by
Part of a [library](https://anguscroll.com/just) of zero-dependency npm modules that do just do one thing.
Guilt-free utilities for every occasion.
[`🍦 Try it`](https://anguscroll.com/just/just-order-by)
```shell
npm install just-order-by
```
```shell
yarn add just-order-by
```
Produces a new array, sorted in given order
```js
import orderBy from 'just-order-by';
orderBy([10, 1, 5, 20, 15, 35, 30, 6, 8]); // [1, 5, 6, 8, 10, 15, 20, 30, 35]
orderBy(
[
{ user: 'fabio', details: { city: 'Milan', age: 34 } },
{ user: 'max', details: { city: 'Munich', age: 29 } },
{ user: 'zacarias', details: { city: 'Sao Paulo', age: 44 } },
{ user: 'robert', details: { city: 'Manchester', age: 28 } },
{ user: 'max', details: { city: 'Zurich', age: 38 } },
],
[
{
property(v) {
return v.details.age;
},
},
]
);
/*
[
{user: 'robert', age: 28},
{user: 'max', age: 29},
{user: 'fabio', age: 34},
{user: 'klaus', age: 38},
{user: 'zacarias', age: 44},
]
*/
orderBy(
[
{user: 'fabio', age: 34},
{user: 'max', age: 29},
{user: 'zacarias', age: 44},
{user: 'robert', age: 28},
{user: 'klaus', age: 38},
],
[
{
property: 'user',
},
]
);
/*
[
{user: 'fabio', age: 34},
{user: 'klaus', age: 38},
{user: 'max', age: 29},
{user: 'robert', age: 28},
{user: 'zacarias', age: 44},
]
*/
orderBy(
[
{ user: 'fabio', age: 34 },
{ user: 'max', age: 29 },
{ user: 'zacarias', age: 44 },
{ user: 'moris', age: 28 },
{ user: 'max', age: 38 },
],
[
{
property: 'user',
order: 'desc',
},
{
property(v) {
return v.age;
},
},
]
);
/*
[
{
user: 'zacarias',
age: 44
},
{
user: 'moris',
age: 28
},
{
user: 'max',
age: 29
},
{
user: 'max',
age: 38
},
{
user: 'fabio',
age: 34
}
]
*/
```