Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/peternewnham/array-autosort
Automatically sorted arrays
https://github.com/peternewnham/array-autosort
array autosort javascript
Last synced: 2 days ago
JSON representation
Automatically sorted arrays
- Host: GitHub
- URL: https://github.com/peternewnham/array-autosort
- Owner: peternewnham
- License: mit
- Created: 2017-01-20T14:57:20.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-01-30T15:09:19.000Z (almost 8 years ago)
- Last Synced: 2024-11-05T20:53:57.391Z (15 days ago)
- Topics: array, autosort, javascript
- Language: JavaScript
- Size: 39.1 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Array Autosort
Automatically sorted arrays.Automatic ascending, descending or custom sorting of arrays. After enabling autosort, adding new entries to the array will automatically sort the array.
Supported Environments: Chrome, Firefox, Edge and NodeJS 6+
**Note**: this feature relies on the [Proxy](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Proxy) object so is not suitable for any environment that does not have it implemented.
## Installation
npm
```bash
npm install array-autosort
```
yarn
```bash
yarn add array-autosort
```## Usage
```javascript
// common js
const autosort = require('array-autosort');
const arr = autosort([1,2,3]);// es6 modules
import autosort from 'array-autosort';
const arr = autosort([1,2,3]);
```## API
### autosort([arr, sorter])
Returns an array.
#### arr
Type: `Array`
Array to autosort. If not provied, an empty array will be used by default.
#### sorter
Type: `Function` or `Boolean`
If `undefined` or `false` the sorter will be an ascending sort (default behaviour)
If `true` the sorter will be a descending sort
If `Function` it will be used as a custom sort function### arr.cancelAutosort()
Stops autosorting the array and returns it.
## Examples
```javascript
// sort ascending
var arr = autosort([10,5,1]); // [1,5,10]
arr.push(6); // [1,5,6,10]
arr.unshift(3); // [1,3,5,6,10]// false is also an alias for ascending sort
autosort([3,2,1], false); // [1,2,3]// sort descending
var arr = autosort([1,2,3], true); // [3,2,1]
arr.push(10); // [10,3,2,1]// custom sorter
var sorter = function(a,b) {
var aId = a.id;
var bId = b.id;
return aId === bId ? 0 : (aId < bId ? -1 : 1);
}
var arr = autosort([{id:10},{id:4},{id:20}], sorter); // [{id:4},{id:10},{id:20}]
arr.push({id:13}); // [{id:4},{id:10},{id:13},{id:20}]// array.reverse will also reverse the autosorter
var arr = autosort([10,5,1]); // [1,5,10]
arr.push(3); // [1,3,5,10]
arr.reverse(); // [10,5,3,1]
arr.push(8); // [10,8,5,3,1]// cancel autosort
var arr = autosort([10,5,1]); // [1,5,10]
arr = arr.cancelAutosort();
arr.push(3); // [1,5,10,3]
```