sortables

1.2.0 • Public • Published

Travis (.org) Codecov

David GitHub

npm npm

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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.2.0
    2
    • latest

Version History

Package Sidebar

Install

npm i sortables

Weekly Downloads

2

Version

1.2.0

License

MIT

Unpacked Size

166 kB

Total Files

24

Last publish

Collaborators

  • varbrad