https://github.com/doowb/sort-object
Sort the keys in an object.
https://github.com/doowb/sort-object
Last synced: 17 days ago
JSON representation
Sort the keys in an object.
- Host: GitHub
- URL: https://github.com/doowb/sort-object
- Owner: doowb
- License: mit
- Created: 2013-10-04T04:29:21.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2019-09-19T04:17:01.000Z (over 5 years ago)
- Last Synced: 2025-04-09T21:19:20.864Z (17 days ago)
- Language: JavaScript
- Size: 47.9 KB
- Stars: 37
- Watchers: 3
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sort-object [](https://www.npmjs.com/package/sort-object) [](https://travis-ci.org/doowb/sort-object)
> Sort the keys in an object.
## Install
Install with [npm](https://www.npmjs.com/):
```sh
$ npm i sort-object --save
```## Usage
```js
var sortObj = require('sort-object');
```By default, the keys on an object will be sorted in ascending order:
```js
sortObj({a: 1, c: 2, b: 3});
//=> {a: 1, b: 3, c: 2}
```The second param can be an object of `options` OR an array of `keys`:
**object**
```js
sortObj({a: 1, c: 2, b: 3}, {keys: ['a', 'b']});
//=> {a: 1, b: 3}
```**array**
```js
sortObj({a: 1, c: 2, b: 3}, ['a', 'c']);
//=> {a: 1, c: 2}
```## Options
* `keys` {Array} The returned object will contain only the specified keys, in the same order.
* `sort` {Function} Sort function to sort the keys using JavaScript's `.sort()` method.
* `sortOrder` {String} Valid values are `desc` or `asc`, case insensitive.
* `sortBy` {String} Sort function that is passed the entire object, rather than just the keys - as with the `.sort()` method.### options.keys
Create a new object with only the given keys.
```js
var o = {a: 1, c: 2, e: 5, d: 4, b: 3};
sortObj(o, {keys: ['a', 'b']});//=> {a: 1, b: 3}
```### options.sort
Function to be passed to javascript's `.sort()` method:
```js
var o = {a: 1, c: 2, e: 5, d: 4, b: 3};
var obj = sortObj(o, {
sort: function (a, b) {
return a < b ? -1 : 1;
}
});
obj;
//=> {a: 1, b: 3, c: 2, d: 4, e: 5}
```### options.sortOrder
Valid values are `desc` or `asc`, case insensitive:
```js
var o = {a: 1, c: 2, e: 5, d: 4, b: 3};
sortObj(o, {sortOrder: 'ASC'});
//=> {e: 5, d: 4, c: 3, b: 2, a: 1}
```### options.sortBy
Function that returns an array of keys to sort by:
```js
var old = {one: 'aa', two: 'bc', three: 'ab'};
var o = sortObj(old, {
sortBy: function (obj) {
var arr = [];
Object.keys(obj).filter(function(key) {
if (/^a/.test(obj[key])) arr.push(key);
});
return arr.reverse();
}
});
//=> {three: 'ab', one: 'aa'}
```## Author
**Brian Woodward**+ [github/doowb](https://github.com/doowb)
+ [twitter/doowb](http://twitter.com/doowb)## License
Copyright © 2014-2016 [Brian Woodward](https://github.com/doowb)
Released under the MIT license.***
_This file was generated by [verb](https://github.com/verbose/verb) on February 03, 2016._