@bitbite/filtered-list
Version:
filter a list of items
30 lines (25 loc) • 715 B
Markdown
# FilteredList
define a set of assertion methods paired with logical operators to filter a list of items.
### install
```sh
npm i @bitbite/filtered-list --save
```
### usage
```js
import { FilteredList, And, Or, Not } from "@bitbite/filtered-list";
const filteredList = new FilteredList<number>([1,2,3,4,5])
const lt2 = (num: number) => num < 2;
const lg4 = (num: number) => num > 4;
const lt2Orlg4 = Or<number>(lt2, lg4);
const filtered = filteredList.assert(lt2Orlg4) // [1, 5]
```
### memoization
```js
import { Memoized } from "@bitbite/filtered-list";
const memSum = Memoized(sum, () => hits++ )
memSum(1,2,3) // initial invocation
memSum(1,2,3) // from memo (1)
memSum(1,2,3) // from memo (2)
```