1.0.1 • Published 6 years ago

array-multisort v1.0.1

Weekly downloads
11
License
MIT
Repository
github
Last release
6 years ago

js-arrayMultisort

Zero-dependency array multi-sort with O(Nlog(N)) complexity. The sort is not necessarily stable*. Returns a new copy for each sorted array in the list.

arrayMultisort((a, b) => (a - b))([3, 4, 1, 2], ['A', 'B', 'C', 'D'])
// returns [[1, 2, 3, 4], ['C', 'D', 'A', 'B']]

Syntax

arrayMultisort(compareFunction)(referenceArray[, anotherArray1, anotherArray2, ...])

Parameters

compareFunction

Specifies a function that defines the sort order. Same as for Array.sort.

referenceArray

The array of elements are sorted according to the return value of the compare function.

anotherArray1-N

Order of elements in these another arrays is changed in the same way as in referenceArray. If element on index 1 of the referenceArray was moved to index 5 of the sorted array, element on index 1 of anotherArray1 is moved to a fifth index.

Return value

List of sorted arrays [[referenceArray], [anotherArray1], ...]. All arrays are sorted in the same order as the referenceArray.

Usage

Example 1:

arrayMultisort((a, b) => (a - b))([3, 4, 1, 2], ['A', 'B', 'C', 'D'])

Output: [[1, 2, 3, 4], ['C', 'D', 'A', 'B']]

Example 2:

const compare = (a, b) => a.localeCompare(b)
const sort = arrayMultisort(compare)
sort(['c', 'b', 'a'], [1, 2, 3])

Output: [['a', 'b', 'c'], [3, 2, 1]]