[!NOTE]
This is one of 192 standalone projects, maintained as part
of the @thi.ng/umbrella monorepo
and anti-framework.
🚀 Please help me to work full-time on these projects by sponsoring me on
GitHub. Thank you! ❤️
About
Array / Arraylike utilities.
Status
STABLE - used in production
Search or submit any issues for this package
Installation
yarn add @thi.ng/arrays
ESM import:
import * as arr from "@thi.ng/arrays";
Browser ESM import:
<script type="module" src="https://cdn.skypack.dev/@thi.ng/arrays"></script>
Skypack documentation
For Node.js REPL:
const arr = await import("@thi.ng/arrays");
Package sizes (brotli'd, pre-treeshake): ESM: 2.99 KB
Dependencies
Usage examples
Several projects in this repo's
/examples
directory are using this package:
Screenshot | Description | Live demo | Source |
---|
| k-means clustering visualization | Demo | Source |
| Randomized 4-point 2D color gradient image generator | Demo | Source |
| Animated, iterative polygon subdivisions & visualization | Demo | Source |
| Responsive image gallery with tag-based Jaccard similarity ranking | Demo | Source |
| Responsive & reactively computed stacked column layout | Demo | Source |
API
Generated API docs
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 to bsLT()
, but for less-than-equals queriesbsGT()
- Returns index of first item greater than search value or -1
if no such values existbsGE()
- Similar to bsGT()
, but for less-than-equals queriesbsEQ()
- Merely syntax sugar, casting any non-found result indices to -1
import { binarySearch, bsGT, bsLT } from "@thi.ng/arrays";
const src = [10, 20, 30, 40];
bsLT(binarySearch(src, 25))
bsGT(binarySearch(src, 25), src.length)
bsGT(binarySearch(src, 40), src.length)
Authors
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 - 2024 Karsten Schmidt // Apache License 2.0