Package Exports
- @thi.ng/arrays
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@thi.ng/arrays) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
This project is part of the @thi.ng/umbrella monorepo.
About
Array / Arraylike utilities.
Status
STABLE - used in production
Search or submit any issues for this package
Installation
yarn add @thi.ng/arrays// ES module
<script type="module" src="https://unpkg.com/@thi.ng/arrays?module" crossorigin></script>
// UMD
<script src="https://unpkg.com/@thi.ng/arrays/lib/index.umd.js" crossorigin></script>Package sizes (gzipped, pre-treeshake): ESM: 2.08 KB / CJS: 2.27 KB / UMD: 2.23 KB
Dependencies
API
- arrayIterator()
- binarySearch()
- bisect()
- endsWith()
- ensureArray()
- ensureIterable()
- fillRange()
- find()
- fuzzyMatch()
- insert()
- into()
- isSorted()
- levenshtein()
- multiSwap()
- peek()
- quickSort()
- shuffle() (w/ custom PRNG support)
- shuffleRange() (w/ custom PRNG support)
- sortByCachedKey()
- startsWith()
- swap()
- swizzle()
Binary search result predicates
The following predicates can be used to perform predecessor / successor
queries using binarySearch().
bsLT()- Returns index of last item less than search value or -1 if no such values existbsLE()- Similar tobsLT(), but for less-than-equals queriesbsGT()- Returns index of first item greater than search value or -1 if no such values existbsGE()- Similar tobsGT(), but for less-than-equals queriesbsEQ()- Merely syntax sugar, casting any non-found result indices to -1
const src = [10, 20, 30, 40];
bsLT(binarySearch(src, 25))
// 1
// greater-than queries also require the array length
bsGT(binarySearch(src, 25), src.length)
// 2
bsGT(binarySearch(src, 40), src.length)
// -1Authors
Karsten Schmidt
If this project contributes to an academic publication, please cite it as:
@misc{thing-arrays,
title = "@thi.ng/arrays",
author = "Karsten Schmidt",
note = "https://thi.ng/arrays",
year = 2018
}License
© 2018 - 2021 Karsten Schmidt // Apache Software License 2.0