npm

Need private packages and team management tools?Check out npm Orgs. »

sort-ids

2.1.0 • Public • Published

sort-ids unstable Build Status

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

var sort = require('sort-ids')
var reorder = require('array-rearrange')
 
var rates = [.12, .47, .52, .97, ...sourceNumbers]
var names = ['John', 'Alexa', 'Jimmy', 'Kate', ...linkedItems]
 
var ids = sortIds(rates)
 
var sortedRates = reorder(a, ids)
var sortedNames = reorder(b, ids)

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

Calculate ids corresponding to sorted input array. Optionally pass input ids array. 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 Yv. MIT License

install

npm i sort-ids

Downloadsweekly downloads

13

version

2.1.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability