array-push-at-sort-position

pubkey
esm
array-push-at-sort-position JS library on GitHub array-push-at-sort-position JS library on npm Download array-push-at-sort-position JS library

Push items to an array at their correct sort-position

Version 4.0.1 License Apache-2.0
array-push-at-sort-position has no homepage
array-push-at-sort-position JS library on GitHub
array-push-at-sort-position JS library on npm
Download array-push-at-sort-position JS library
Keywords
arraypushsortinsertbinary-searchsortingbinary-insertindexing

array-push-at-sort-position

Push items to an array at their correct sort-position which is much faster then re-sorting the array.

Adding an item to an array with push() and sort() has O(n*log(n)) while inserting the item at the correct sort-position has O(n).

  npm install array-push-at-sort-position --save

// instead of pushing and resorting like this:
const arrayWithItems = arrayWithItems.slice();
arrayWithItems.push(newItem);
const arrayWithNewItems = arrayWithItems.sort(sortComparator);

// you can push the newItem directly into the correct sorting position
const insertPosition = pushAtSortPosition(
  arrayWithItems,
  newItem,
  sortComparator,
  /**
   * Start lowest index
   * Use 0 by default. If you use this method to merge sorted arrays, you might
   * use a  higher value if you know that the newItem will not be positioned before that index.
   */
  0
);

Important

  • Calling pushAtSortPosition will not copy the array. It will mutate the input array. Call array.slice(0) on the input if you do not want the original array to be mutated.

See also

I tested many implementations and refactored the best ones. Some other modules: