sortables
v1.2.0
Published
Utilities for sorting arrays
Downloads
16
Readme
A set of utility functions for sorting arrays.
Install
Install using npm
or yarn
.
npm i sortables --save
yarn add sortables
The library exports all of it's functions as named exports.
ES6
import { sort } from 'sortables';
sort(...);
CJS
const { sort } = require('sortables');
sort(...);
sort(array, sortFunction)
Returns a new array with the sort function having been applied.
Does not modify the original array (unlike the vanilla JS Array.sort function).
const data = [4, 1, 6, 2, 4];
const sorted = sort(data, ascending);
console.log(sorted); // [1, 2, 4, 4, 6]
console.log(data === sorted); // false
hierarchical(...sortFunctions)
Combines multiple sort functions into one hierarchical sort function.
const data = [
{ data: 4, active: true },
{ data: 2, active: true },
{ data: 4, active: false },
{ data: 6, active: false },
];
const sorted = sort(data, hierarchical(ascending('data'), descending('active')));
console.log(sorted);
/*
[
{ data: 2, active: true },
{ data: 4, active: true },
{ data: 4, active: false },
{ data: 6, active: false }
]
*/
ascending(key)
& descending(key)
Two default sorting functions, with an optional key (for sorting on object properties).
ascending
will sort from low-to-high, whereas descending
will sort from high-to-low.
console.log(sort([4, 5, 2, 6, 3, 1], ascending)) // [1, 2, 3, 4, 5, 6]
console.log(sort([4, 5, 2, 6, 3, 1], descending)) // [6, 5, 4, 3, 2, 1]
Both functions can be given a key to sort based on properties of an object.
const data = [ { a: 1 }, { a: 4 }, { a: 2 }, { a: 3 } ]
console.log(sort(data, ascending('a'))) // [ { a: 1 }, { a: 2 }, { a: 3 }, { a: 4 } ]
console.log(sort(data, descending('a'))) // [ { a: 4 }, { a: 3 }, { a: 2 }, { a: 1 } ]
Note: ascending
and ascending()
are identical.