Package Exports
- itertools-ts
Readme
IterTools implementation for TypeScript
Inspired by Python — designed for TypeScript.
Warning: This library is an active work in progress, and is not yet ready for production use.
Setup
npm i itertools-tsQuick Reference
Loop Iteration Tools
Single Iteration
| Iterator | Description | Code Snippet |
|---|---|---|
flatMap |
Map function onto items and flatten result | flatMap(data, mapper) |
map |
Map function onto each item | map(data, mapper) |
repeat |
Repeat an item a number of times | repeat(item, repetitions) |
Usage
Flat Map
Map a function only the elements of the iterable and then flatten the results.
function *flatMap<TInput, TOutput>(
data: Iterable<TInput>|Iterator<TInput>,
mapper: FlatMapper<TInput, TOutput>,
): Iterable<TOutput>import { flatMap } from './single';
const data = [1, 2, 3, 4, 5];
const mapper = ($item) => [$item, -$item];
for (number of flatMap(data, mapper)) {
console.log(`${number} `);
}
// 1 -1 2 -2 3 -3 4 -4 5 -5Map
Map a function onto each element.
function* map<TInput, TOutput>(
data: Iterable<TInput>|Iterator<TInput>,
mapper: (datum: TInput) => TOutput,
): Iterable<TOutput>import { map } from './single';
const grades = [100, 99, 95, 98, 100];
const strictParentsOpinion = (g) => (g === 100) ? 'A' : 'F';
for(const actualGrade of map(grades, strictParentsOpinion)) {
console.log(actualGrade);
}
// A, F, F, F, ARepeat
Repeat an item.
function *repeat<T>(item: T, repetitions: number): Iterable<T>import { repeat } from './single';
data = 'Beetlejuice';
repetitions = 3;
for (const repeated of repeat(data, repetitions)) {
console.log(repeated);
}
// 'Beetlejuice', 'Beetlejuice', 'Beetlejuice'Unit testing
npm i
npm run testLicense
IterTools TS is licensed under the MIT License.
