Iterables Reference
🔁 Iterable and AsyncIterable utils.
Usage
By default, all utils are meant to be used with Iterable
values, to use
AsyncIterable
values the functions have to be imported from
@lou.codes/iterables/asynchronous
.
📦 Node
Install @lou.codes/iterables
as a dependency:
Import it and use it:
🦕 Deno
Import @lou.codes/iterables
using the npm:
prefix, and use it directly:
🌎 Browser
Import @lou.codes/iterables
using esm.sh, and use it directly:
Useful links
- 📝 Documentation: TypeDoc generated documentation.
- ⏳ Changelog: List of changes between versions.
- ✅ Tests Coverage: Coveralls page with tests coverage.
Common
createIterableIterator
▸ createIterableIterator<Item
>(generatorFunction
): Object
Takes a generator function and returns an iterable iterator object.
Type parameters
Name |
---|
Item |
Parameters
Name | Type | Description |
---|---|---|
generatorFunction | () => { next : (…args : [] | [void ]) => IteratorResult <Item , void > ; return? : (value? : void ) => IteratorResult <Item , void > ; throw? : (e? : any ) => IteratorResult <Item , void > } | Generator to be used every time [Symbol.iterator] is called. |
Returns
Object
Iterable iterator object.
Name | Type |
---|---|
[iterator] | () => IterableIterator <Item > |
next | (…args : [] | [undefined ]) => IteratorResult <Item , any > |
return (optional) | (value? : any ) => IteratorResult <Item , any > |
throw (optional) | (e? : any ) => IteratorResult <Item , any > |
Example
forEach
▸ forEach<Item
>(callback
): (iterable
: { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> }) => void
For each function for iterables.
Type parameters
Name |
---|
Item |
Parameters
Name | Type | Description |
---|---|---|
callback | Unary <Item , void > | Function to be called for every item of the iterable. |
Returns
fn
Curried function that expects an iterable to loop over and has callback
set in
context.
▸ (iterable
): void
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
void
Example
Generators
ReadOnlyIterable
Ƭ ReadOnlyIterable<Item
>: ReadOnly
<Iterable
<Item
>>
Read-only Iterable
.
Remarks
This is just an read-only alternative to Iterable
to avoid unwanted mutations.
Type parameters
Name | Type | Description |
---|---|---|
Item | unknown | Type of the items in the Iterable . |
ReadOnlyIterableIterator
Ƭ ReadOnlyIterableIterator<Item
>:
ReadOnly
<IterableIterator
<Item
>>
Read-only IterableIterator
.
Remarks
This is just an read-only alternative to IterableIterator
to avoid unwanted
mutations.
Type parameters
Name | Type | Description |
---|---|---|
Item | unknown | Type of the items in the IterableIterator . |
ReadOnlyIterator
Ƭ ReadOnlyIterator<Item
, Return
, Next
>:
ReadOnly
<Iterator
<Item
, Return
, Next
>>
Read-only Iterator
.
Remarks
This is just an read-only alternative to Iterator
to avoid unwanted mutations.
Type parameters
Name | Type | Description |
---|---|---|
Item | unknown | Type of the items in the Iterator . |
Return | void | Type of the return value in the Iterator . |
Next | void | Type of the next value in the Iterator . |
append
▸ append<TailItem
>(tailIterable
): <InitialItem>(initialIterable
:
{ [iterator]
: () => Iterator
<InitialItem
, any
, undefined
> }) => {
[iterator]
: () => IterableIterator
<TailItem
| InitialItem
> ; next
:
(…args
: [] | [undefined
]) => IteratorResult
<TailItem
|
InitialItem
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<TailItem
| InitialItem
, any
> ; throw?
: (e?
: any
)
=> IteratorResult
<TailItem
| InitialItem
, any
> }
Appends one iterable to another.
Type parameters
Name |
---|
TailItem |
Parameters
Name | Type | Description |
---|---|---|
tailIterable | Object | Iterable to be appended. |
tailIterable.[iterator] | () => Iterator <TailItem , any , undefined > | - |
Returns
fn
Curried generator function with tailIterable
set in context.
▸ <InitialItem
>(initialIterable
): Object
Type parameters
Name |
---|
InitialItem |
Parameters
Name | Type |
---|---|
initialIterable | Object |
initialIterable.[iterator] | () => Iterator <InitialItem , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <TailItem | InitialItem > |
next | (…args : [] | [undefined ]) => IteratorResult <TailItem | InitialItem , any > |
return (optional) | (value? : any ) => IteratorResult <TailItem | InitialItem , any > |
throw (optional) | (e? : any ) => IteratorResult <TailItem | InitialItem , any > |
Example
drop
▸ drop(amount
): <Item>(iterable
: { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> }) => { [iterator]
: () =>
IterableIterator
<Item
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<Item
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<Item
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<Item
, any
> }
Drop the specified amount of items from the given iterable.
Parameters
Name | Type | Description |
---|---|---|
amount | number | bigint | Amount of items to drop. |
Returns
fn
Curried function with amount
in context.
▸ <Item
>(iterable
): Object
Type parameters
Name |
---|
Item |
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <Item > |
next | (…args : [] | [undefined ]) => IteratorResult <Item , any > |
return (optional) | (value? : any ) => IteratorResult <Item , any > |
throw (optional) | (e? : any ) => IteratorResult <Item , any > |
Example
filter
▸ filter<Item
, Filtered
>(predicate
): (iterable
: { [iterator]
:
() => Iterator
<Item
, any
, undefined
> }) => { [iterator]
: () =>
IterableIterator
<Filtered
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<Filtered
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<Filtered
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<Filtered
, any
> }
Filters items in an iterable against a predicate and returns items that
evaluated to true
.
Type parameters
Name | Type |
---|---|
Item | Item |
Filtered | never |
Parameters
Name | Type | Description |
---|---|---|
predicate | Single <Filtered > extends Single <never > ? Unary <Item , boolean > : Predicate <Item , Filtered > | Predicate function to evaluate each item. |
Returns
fn
Curried function with predicate
set in context.
▸ (iterable
): Object
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <Filtered > |
next | (…args : [] | [undefined ]) => IteratorResult <Filtered , any > |
return (optional) | (value? : any ) => IteratorResult <Filtered , any > |
throw (optional) | (e? : any ) => IteratorResult <Filtered , any > |
Example
flat
▸ flat<Iterable
>(iterable
): Iterable
extends { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> } ? Item
extends { [iterator]
: ()
=> Iterator
<SubItem
, any
, undefined
> } ? { [iterator]
: () =>
IterableIterator
<SubItem
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<SubItem
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<SubItem
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<SubItem
, any
> } : { [iterator]
: () =>
IterableIterator
<Item
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<Item
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<Item
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<Item
, any
> } : never
Flattens one level of the given iterable.
Type parameters
Name | Type |
---|---|
Iterable | extends Object |
Parameters
Name | Type | Description |
---|---|---|
iterable | Iterable | Iterable to flatten. |
Returns
Iterable
extends { [iterator]
: () => Iterator
<Item
, any
,
undefined
> } ? Item
extends { [iterator]
: () => Iterator
<SubItem
,
any
, undefined
> } ? { [iterator]
: () => IterableIterator
<SubItem
>
; next
: (…args
: [] | [undefined
]) => IteratorResult
<SubItem
,
any
> ; return?
: (value?
: any
) => IteratorResult
<SubItem
, any
> ;
throw?
: (e?
: any
) => IteratorResult
<SubItem
, any
> } : {
[iterator]
: () => IterableIterator
<Item
> ; next
: (…args
: [] |
[undefined
]) => IteratorResult
<Item
, any
> ; return?
: (value?
:
any
) => IteratorResult
<Item
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<Item
, any
> } : never
Iterable with flatten items.
Example
initial
▸ initial<Iterable
>(iterable
): Object
Get all elements except the last one of an iterable.
Type parameters
Name | Type |
---|---|
Iterable | extends Object |
Parameters
Name | Type | Description |
---|---|---|
iterable | Iterable | Iterable to get the items from. |
Returns
Object
Iterable with all items except the last one.
Name | Type |
---|---|
[iterator] | () => IterableIterator <Iterable extends ReadOnlyArray ? Initial <Iterable >[number ] : IsomorphicIterableItem <Iterable >> |
next | (…args : [] | [undefined ]) => IteratorResult <Iterable extends ReadOnlyArray ? Initial <Iterable >[number ] : IsomorphicIterableItem <Iterable >, any > |
return (optional) | (value? : any ) => IteratorResult <Iterable extends ReadOnlyArray ? Initial <Iterable >[number ] : IsomorphicIterableItem <Iterable >, any > |
throw (optional) | (e? : any ) => IteratorResult <Iterable extends ReadOnlyArray ? Initial <Iterable >[number ] : IsomorphicIterableItem <Iterable >, any > |
Example
intersperse
▸ intersperse<Separator
>(separator
): <Item>(iterable
: {
[iterator]
: () => Iterator
<Item
, any
, undefined
> }) => {
[iterator]
: () => IterableIterator
<Separator
| Item
> ; next
:
(…args
: [] | [undefined
]) => IteratorResult
<Separator
| Item
,
any
> ; return?
: (value?
: any
) => IteratorResult
<Separator
|
Item
, any
> ; throw?
: (e?
: any
) => IteratorResult
<Separator
|
Item
, any
> }
Add the given separator
between each element of the given iterable.
Type parameters
Name |
---|
Separator |
Parameters
Name | Type | Description |
---|---|---|
separator | Separator | Separator to add between each element. |
Returns
fn
Curried function with separator
in context.
▸ <Item
>(iterable
): Object
Type parameters
Name |
---|
Item |
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <Separator | Item > |
next | (…args : [] | [undefined ]) => IteratorResult <Separator | Item , any > |
return (optional) | (value? : any ) => IteratorResult <Separator | Item , any > |
throw (optional) | (e? : any ) => IteratorResult <Separator | Item , any > |
Example
map
▸ map<Item
, MappedItem
>(mapper
): (iterable
: { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> }) => { [iterator]
: () =>
IterableIterator
<MappedItem
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<MappedItem
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<MappedItem
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<MappedItem
, any
> }
Map for iterables.
Type parameters
Name |
---|
Item |
MappedItem |
Parameters
Name | Type | Description |
---|---|---|
mapper | Unary <Item , MappedItem > | Mapper function. |
Returns
fn
Generator function with mapper
function set in context.
▸ (iterable
): Object
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <MappedItem > |
next | (…args : [] | [undefined ]) => IteratorResult <MappedItem , any > |
return (optional) | (value? : any ) => IteratorResult <MappedItem , any > |
throw (optional) | (e? : any ) => IteratorResult <MappedItem , any > |
Example
objectToEntries
▸ objectToEntries<Key
, Value
>(input
): Object
Yields all entries of an object (including symbols).
Type parameters
Name | Type |
---|---|
Key | extends PropertyKey |
Value | Value |
Parameters
Name | Type | Description |
---|---|---|
input | ReadOnlyRecord <Key , Value > | Object to get entries from. |
Returns
Object
Iterable with entries of the given object (including symbols).
Name | Type |
---|---|
[iterator] | () => IterableIterator <Entry <Key , Value >> |
next | (…args : [] | [undefined ]) => IteratorResult <Entry <Key , Value >, any > |
return (optional) | (value? : any ) => IteratorResult <Entry <Key , Value >, any > |
throw (optional) | (e? : any ) => IteratorResult <Entry <Key , Value >, any > |
Example
prepend
▸ prepend<InitialItem
>(initialIterable
): <TailItem>(tailIterable
:
{ [iterator]
: () => Iterator
<TailItem
, any
, undefined
> }) => {
[iterator]
: () => IterableIterator
<InitialItem
| TailItem
> ; next
:
(…args
: [] | [undefined
]) => IteratorResult
<InitialItem
|
TailItem
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<InitialItem
| TailItem
, any
> ; throw?
: (e?
: any
)
=> IteratorResult
<InitialItem
| TailItem
, any
> }
Prepends one iterable to another.
Type parameters
Name |
---|
InitialItem |
Parameters
Name | Type | Description |
---|---|---|
initialIterable | Object | Iterable to be appended. |
initialIterable.[iterator] | () => Iterator <InitialItem , any , undefined > | - |
Returns
fn
Curried generator function with initialIterable
set in context.
▸ <TailItem
>(tailIterable
): Object
Type parameters
Name |
---|
TailItem |
Parameters
Name | Type |
---|---|
tailIterable | Object |
tailIterable.[iterator] | () => Iterator <TailItem , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <InitialItem | TailItem > |
next | (…args : [] | [undefined ]) => IteratorResult <InitialItem | TailItem , any > |
return (optional) | (value? : any ) => IteratorResult <InitialItem | TailItem , any > |
throw (optional) | (e? : any ) => IteratorResult <InitialItem | TailItem , any > |
Example
range
▸ range<Step
>(step
): (from
: Step
extends bigint
? bigint
:
number
) => (to
: Step
extends bigint
? bigint
: number
) => {
[iterator]
: () => IterableIterator
<number
| Step
extends bigint
?
bigint
: number
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<number
| Step
extends bigint
? bigint
: number
,
any
> ; return?
: (value?
: any
) => IteratorResult
<number
| Step
extends bigint
? bigint
: number
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<number
| Step
extends bigint
? bigint
: number
,
any
> }
Range iterable generator (from from
to to
).
Type parameters
Name | Type |
---|---|
Step | extends number | bigint |
Parameters
Name | Type | Description |
---|---|---|
step | Step | Step size. |
Returns
fn
Curried function with step
set in context.
▸ (from
): (to
: Step
extends bigint
? bigint
: number
) => {
[iterator]
: () => IterableIterator
<number
| Step
extends bigint
?
bigint
: number
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<number
| Step
extends bigint
? bigint
: number
,
any
> ; return?
: (value?
: any
) => IteratorResult
<number
| Step
extends bigint
? bigint
: number
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<number
| Step
extends bigint
? bigint
: number
,
any
> }
Parameters
Name | Type |
---|---|
from | Step extends bigint ? bigint : number |
Returns
fn
▸ (to
): Object
Parameters
Name | Type |
---|---|
to | Step extends bigint ? bigint : number |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <number | Step extends bigint ? bigint : number > |
next | (…args : [] | [undefined ]) => IteratorResult <number | Step extends bigint ? bigint : number , any > |
return (optional) | (value? : any ) => IteratorResult <number | Step extends bigint ? bigint : number , any > |
throw (optional) | (e? : any ) => IteratorResult <number | Step extends bigint ? bigint : number , any > |
Example
repeat
▸ repeat(times
): <Item>(item
: Item
) => { [iterator]
: () =>
IterableIterator
<Item
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<Item
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<Item
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<Item
, any
> }
Repeat given item the specified amount of times (can be BigInt
or Infinity
times) as an iterable.
Parameters
Name | Type |
---|---|
times | number | bigint |
Returns
fn
Curried function with item
in context.
▸ <Item
>(item
): Object
Type parameters
Name |
---|
Item |
Parameters
Name | Type |
---|---|
item | Item |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <Item > |
next | (…args : [] | [undefined ]) => IteratorResult <Item , any > |
return (optional) | (value? : any ) => IteratorResult <Item , any > |
throw (optional) | (e? : any ) => IteratorResult <Item , any > |
Example
take
▸ take(amount
): <Item>(iterable
: { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> }) => { [iterator]
: () =>
IterableIterator
<Item
> ; next
: (…args
: [] | [undefined
]) =>
IteratorResult
<Item
, any
> ; return?
: (value?
: any
) =>
IteratorResult
<Item
, any
> ; throw?
: (e?
: any
) =>
IteratorResult
<Item
, any
> }
Take the given amount of items from the iterable.
Parameters
Name | Type | Description |
---|---|---|
amount | number | bigint | Amount of items to take. |
Returns
fn
Curried function with amount
in context.
▸ <Item
>(iterable
): Object
Type parameters
Name |
---|
Item |
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <Item > |
next | (…args : [] | [undefined ]) => IteratorResult <Item , any > |
return (optional) | (value? : any ) => IteratorResult <Item , any > |
throw (optional) | (e? : any ) => IteratorResult <Item , any > |
Example
toIterable
▸ toIterable<ValueOrIterable
>(valueOrIterable
): Object
Takes a value, iterable and yields it.
Type parameters
Name | Description |
---|---|
ValueOrIterable | Generic of value or iterable to yield. |
Parameters
Name | Type | Description |
---|---|---|
valueOrIterable | ValueOrIterable | Vale or iterable to yield. |
Returns
Object
Yielded item or iterable.
Name | Type |
---|---|
[iterator] | () => IterableIterator <ValueOrIterable extends IsomorphicIterable ? IsomorphicIterableItem <ValueOrIterable > : ValueOrIterable > |
next | (…args : [] | [undefined ]) => IteratorResult <ValueOrIterable extends IsomorphicIterable ? IsomorphicIterableItem <ValueOrIterable > : ValueOrIterable , any > |
return (optional) | (value? : any ) => IteratorResult <ValueOrIterable extends IsomorphicIterable ? IsomorphicIterableItem <ValueOrIterable > : ValueOrIterable , any > |
throw (optional) | (e? : any ) => IteratorResult <ValueOrIterable extends IsomorphicIterable ? IsomorphicIterableItem <ValueOrIterable > : ValueOrIterable , any > |
Example
See
unique
▸ unique<Item
>(iterable
): Object
Returns a single instance of each item in the iterable.
Type parameters
Name |
---|
Item |
Parameters
Name | Type | Description |
---|---|---|
iterable | Object | Iterable to be filtered. |
iterable.[iterator] | () => Iterator <Item , any , undefined > | - |
Returns
Object
Generators with a single instance of each item of the iterable.
Name | Type |
---|---|
[iterator] | () => IterableIterator <Item > |
next | (…args : [] | [undefined ]) => IteratorResult <Item , any > |
return (optional) | (value? : any ) => IteratorResult <Item , any > |
throw (optional) | (e? : any ) => IteratorResult <Item , any > |
Example
zip
▸ zip<ItemFirst
>(iterableFirst
): <ItemSecond>(iterableSecond
: {
[iterator]
: () => Iterator
<ItemSecond
, any
, undefined
> }) => {
[iterator]
: () => IterableIterator
<readonly [ItemFirst
, ItemSecond
]> ;
next
: (…args
: [] | [undefined
]) => IteratorResult
<readonly
[ItemFirst
, ItemSecond
], any
> ; return?
: (value?
: any
) =>
IteratorResult
<readonly [ItemFirst
, ItemSecond
], any
> ; throw?
:
(e?
: any
) => IteratorResult
<readonly [ItemFirst
, ItemSecond
], any
>
}
Takes two iterables and returns a new iterable with the length of the shortest iterable with tuples containing the items from both.
Type parameters
Name |
---|
ItemFirst |
Parameters
Name | Type | Description |
---|---|---|
iterableFirst | Object | One of the iterables to be zipped. |
iterableFirst.[iterator] | () => Iterator <ItemFirst , any , undefined > | - |
Returns
fn
Curried function with iterableFirst
in context.
▸ <ItemSecond
>(iterableSecond
): Object
Type parameters
Name |
---|
ItemSecond |
Parameters
Name | Type |
---|---|
iterableSecond | Object |
iterableSecond.[iterator] | () => Iterator <ItemSecond , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <readonly [ItemFirst , ItemSecond ]> |
next | (…args : [] | [undefined ]) => IteratorResult <readonly [ItemFirst , ItemSecond ], any > |
return (optional) | (value? : any ) => IteratorResult <readonly [ItemFirst , ItemSecond ], any > |
throw (optional) | (e? : any ) => IteratorResult <readonly [ItemFirst , ItemSecond ], any > |
Example
zipIndex
▸ zipIndex<ItemSecond
>(iterableSecond
): Object
Yields a tuple for each item in the iterable with the index of said item.
Type parameters
Name |
---|
ItemSecond |
Parameters
Name | Type |
---|---|
iterableSecond | Object |
iterableSecond.[iterator] | () => Iterator <ItemSecond , any , undefined > |
Returns
Object
Name | Type |
---|---|
[iterator] | () => IterableIterator <readonly [number , ItemSecond ]> |
next | (…args : [] | [undefined ]) => IteratorResult <readonly [number , ItemSecond ], any > |
return (optional) | (value? : any ) => IteratorResult <readonly [number , ItemSecond ], any > |
throw (optional) | (e? : any ) => IteratorResult <readonly [number , ItemSecond ], any > |
Example
Yields
Tuples with the index of each item.
Reducers
count
▸ count<Item
>(predicate
): (iterable
: { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> }) => number
Counts the number of items that satisfy a predicate in the given iterable.
Type parameters
Name |
---|
Item |
Parameters
Name | Type | Description |
---|---|---|
predicate | Filter <Item > | Predicate function for items to be counted. |
Returns
fn
Curried function with predicate
in context.
▸ (iterable
): number
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
number
Example
entriesToObject
▸ entriesToObject<Item
>(iterable
):
ReadOnlyRecord
<EntryKey
<Item
>, EntryValue
<Item
>>
Takes an entries iterable and returns an object.
Type parameters
Name | Type |
---|---|
Item | extends Entry |
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
ReadOnlyRecord
<EntryKey
<Item
>, EntryValue
<Item
>>
Object constructed from entries.
Example
every
▸ every<Item
, Predicated
>(predicate
): (iterable
: { [iterator]
:
() => Iterator
<Item
, any
, undefined
> }) => boolean
Evaluates items in an iterable against a predicate and returns true
if all
items evaluates to true
.
Type parameters
Name | Type |
---|---|
Item | Item |
Predicated | never |
Parameters
Name | Type | Description |
---|---|---|
predicate | Single <Predicated > extends Single <never > ? Unary <Item , boolean > : Predicate <Item , Predicated > | Predicate function to evaluate each item. |
Returns
fn
Curried function with predicate
set in context.
▸ (iterable
): boolean
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
boolean
Example
find
▸ find<Item
>(predicate
): (iterable
: { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> }) => Maybe
<Item
>
Returns the value of the first item in the iterable where predicate is true
,
undefined
otherwise.
Type parameters
Name |
---|
Item |
Parameters
Name | Type | Description |
---|---|---|
predicate | Unary <Item , boolean > | Predicate function to search for item. |
Returns
fn
Curried function with predicate
set in context.
▸ (iterable
): Maybe
<Item
>
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
Maybe
<Item
>
Example
groupBy
▸ groupBy<Item
, Key
>(grouper
): (iterable
: { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> }) => ReadOnlyRecord
<Key
,
ReadOnlyArray
<Item
>>
Groups values of an iterable in an object based on the output of the grouper
function.
Type parameters
Name | Type |
---|---|
Item | Item |
Key | extends PropertyKey |
Parameters
Name | Type | Description |
---|---|---|
grouper | Unary <Item , Key > | Grouper function. |
Returns
fn
Object with grouped values.
▸ (iterable
): ReadOnlyRecord
<Key
, ReadOnlyArray
<Item
>>
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
ReadOnlyRecord
<Key
, ReadOnlyArray
<Item
>>
Example
head
▸ head<Iterable
>(iterable
): Iterable
extends ReadOnlyArray
?
Head
<Iterable
> : Maybe
<IsomorphicIterableItem
<Iterable
>>
Get first element of an iterable (undefined
if it is empty).
Type parameters
Name | Type |
---|---|
Iterable | extends Object |
Parameters
Name | Type | Description |
---|---|---|
iterable | Iterable | Iterable to get the first element from. |
Returns
Iterable
extends ReadOnlyArray
? Head
<Iterable
> :
Maybe
<IsomorphicIterableItem
<Iterable
>>
First element of the iterable (undefined
if empty).
Example
includes
▸ includes<SearchItem
>(searchItem
): (iterable
: { [iterator]
: ()
=> Iterator
<unknown
, any
, undefined
> }) => boolean
Tries to find the given searchItem
in iterable.
Type parameters
Name |
---|
SearchItem |
Parameters
Name | Type | Description |
---|---|---|
searchItem | SearchItem | Item to search. |
Returns
fn
Curried function with searchItem
set in context.
▸ (iterable
): boolean
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <unknown , any , undefined > |
Returns
boolean
Example
iterableToArray
▸ iterableToArray<Iterable
>(iterable
):
ReadOnlyArray
<IsomorphicIterableItem
<Iterable
>>
Turns given iterable into an array.
Type parameters
Name | Type |
---|---|
Iterable | extends Object |
Parameters
Name | Type | Description |
---|---|---|
iterable | Iterable | Iterable to be turned into an array. |
Returns
ReadOnlyArray
<IsomorphicIterableItem
<Iterable
>>
Array made of iterable items.
Example
join
▸ join(separator
): <Item>(iterable
: { [iterator]
: () =>
Iterator
<Item
, any
, undefined
> }) => string
Takes a separator
string and a iterable and returns a string with the
concatenation of all the elements separated by the separator
.
Parameters
Name | Type | Description |
---|---|---|
separator | string | String to use as separator. |
Returns
fn
Curried function with separator
in context.
▸ <Item
>(iterable
): string
Type parameters
Name | Type |
---|---|
Item | extends Strigifiable |
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
string
Example
length
▸ length(iterable
): number
Get the length of an iterable.
Parameters
Name | Type | Description |
---|---|---|
iterable | Object | Iterable to get the length from. |
iterable.[iterator] | () => Iterator <unknown , any , undefined > | - |
Returns
number
Promise with the length of the iterable.
Example
reduce
▸ reduce<Item
, Accumulator
>(reducer
): (initialValue
:
Accumulator
) => (iterable
: { [iterator]
: () => Iterator
<Item
, any
,
undefined
> }) => Accumulator
Reducer function for iterables.
Type parameters
Name |
---|
Item |
Accumulator |
Parameters
Name | Type | Description |
---|---|---|
reducer | Reducer <Item , Accumulator > | Reducer function. |
Returns
fn
Curried function with reducer
in context.
▸ (initialValue
): (iterable
: { [iterator]
: () => Iterator
<Item
,
any
, undefined
> }) => Accumulator
Parameters
Name | Type |
---|---|
initialValue | Accumulator |
Returns
fn
▸ (iterable
): Accumulator
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
Accumulator
Example
some
▸ some<Item
, Predicated
>(predicate
): (iterable
: { [iterator]
:
() => Iterator
<Item
, any
, undefined
> }) => boolean
Evaluates items in an iterable against a predicate and returns true
if any
item evaluates to true
.
Type parameters
Name | Type |
---|---|
Item | Item |
Predicated | never |
Parameters
Name | Type | Description |
---|---|---|
predicate | Single <Predicated > extends Single <never > ? Unary <Item , boolean > : Predicate <Item , Predicated > | Predicate function to evaluate each item. |
Returns
fn
Curried function with predicate
set in context.
▸ (iterable
): boolean
Parameters
Name | Type |
---|---|
iterable | Object |
iterable.[iterator] | () => Iterator <Item , any , undefined > |
Returns
boolean
Example