4.0.1 • Published 7 months ago

array-push-at-sort-position v4.0.1

Weekly downloads
3,223
License
Apache-2.0
Repository
github
Last release
7 months ago

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: