arrayslicer
v1.2.3
Published
Node.JS module that implements an optimized binary search over a given array of objects
Downloads
2,290
Readme
Array Slicer
Node.JS module that implements an optimized binary search over a given array of objects.
Quick example
var IndexedArray = require("arrayslicer");
var ia = new IndexedArray([{num: 1}, {num: 2}, {num: 5}], "num");
ia.fetch(2); // ia.cursor is set to 1
ia.get(1); // -> {num: 1}
ia.getRange(2, 5); // -> [{num: 2}, {num: 5}]
Install
npm install arrayslicer
API
IndexedArray(array, index)
Creates a new IndexedArray
object based on array
and indexed by the property index
.
IndexedArray.sort()
Sort the IndexedArray
by its index property. This is needed to ensure the values are retrieved properly.
IndexedArray.fetch(value)
Sets the internal pointer of the IndexedArray
, called cursor
, to the element with index equal value
.
If there are no matching elements, the properties nexthigh
and nextlow
are set to the nearest indexes to value
.
IndexedArray.get(value)
Gets the element with index equal value
.
If there are no matching elements, the function will return null
.
IndexedArray.get(begin, end)
Returns an array containing all the elements within begin
and end
, including both values if exact matches are found within the data.
IndexedArray.setCompare(fn)
Use a custom compare function.
IndexedArray.setSort(fn)
Use a custom sort function.
Licence
WTFPL