1.0.0 • Published 10 years ago

shoveit v1.0.0

Weekly downloads
1
License
MIT
Repository
-
Last release
10 years ago

shoveit

Take an array of elements that have either points or ranges defined, and shove them into an array of arrays where the elements ranges and points do not overlap. Here an visualization of the idea:

-aaa----------
-------bbbbb--
--cccc--------
----d---dd----
----e-------e-

=>

-aaae--bbbbbe-
--cccc--------
----d---dd----


var array = [{
    name: 'a',
    range: [2, 4]
}, {
    name: 'b',
    range: [8, 12]
}, {
    name: 'c',
    range: [3, 6]
}, {
    name: 'd',
    points: [5, 9,10]
}];

console.log(shove(array));

[ [ { name: 'a', range: [Object] },
    { name: 'b', range: [Object] } ],
  [ { name: 'c', range: [Object] },
    { name: 'd', points: [Object] } ] ]

The algorithm is not that smart so it wont always get the optimal shuffle, but thats okay.