sort-ids

3.0.1 • Public • Published

sort-ids test

Sort input array, return sorted ids of the array items, keeping the initial array unchanged.

Useful to perform linked sorting of multiple arrays, where linked array[s] should be sorted the same way as the primary one.

npm install sort-ids

import sortIds from 'sort-ids'
import reorder from 'array-rearrange'

const rates = [.12, .47, .52, .97, ...sourceNumbers]
const names = ['John', 'Alexa', 'Jimmy', 'Kate', ...linkedItems]

const ids = sortIds(rates)

const sortedRates = reorder(rates, ids)
const sortedNames = reorder(names, ids)

ids = sortIds(array, ids?, precise=true)

Calculate ids corresponding to sorted input array. The input array isn't changed. Optionally pass input ids - some initial order of ids. precise flag makes sure no missorts took place and resolves them, if any. Disabling that can save ~30ms for 1e6 items input arrays.

See also array-rearrange for reordering input array based on a list of ids.

Motivation

This package is >= 6 times faster compared to sorting function. That is achieved by packing input value - id pairs into a single float64 value and performing native sort on that Float64Array, then unpacking the ids back.

Acknowledgement

The idea was proposed by Robert Monfera for snap-points-2d and eventually implemented. But there may be other applications, like sorting colors etc.

License

(c) 2018 Dmitry Iv. MIT License

Dependencies (0)

    Dev Dependencies (4)

    Package Sidebar

    Install

    npm i sort-ids

    Weekly Downloads

    6

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    10.8 kB

    Total Files

    8

    Last publish

    Collaborators

    • dy