Функции-комбинаторы предназначены для объединения нескольких коллекций в одну.
Создает итератор, который объединяет элементы переданных коллекций в одну коллекцию.
sequence<T>(iterable: Iterable<T>, ...iterables: Array<Iterable<T>>): IterableIterator<T>;
Использование:
import { Collection, sequence } from 'iterity';
const cont = new Collection(3);
const collection = sequence([1, 2], cont); // OUTPUT: [1, 2, 3]
// Или можно без использования контейнера
const collection = sequence([1, 2], [3, 4], new Set([5])); // OUTPUT: [1, 2, 3, 4, 5]
Создает асинхронный итератор, который объединяет элементы переданных асинхронных коллекций в одну коллекцию.
sequence<T>(iterable: AsyncIterable<T>, ...iterables: Array<AsyncIterable<T>>): AsyncIterableIterator<T>;
Использование:
import { AsyncCollection, sequenceAsync } from 'iterity';
const fromOneToThree = new AsyncCollection([1, 2, 3]);
const fromFourToSix = new AsyncCollection([4, 5, 6]);
const collection = sequenceAsync(fromOneToThree, fromFourToSix); // OUTPUT: [1, 2, 3, 4, 5, 6]
Создаёт итератор по кортежам элементов переданных коллекций.
zip<T>(...iterables: Array<Iterable<T>>): IterableIterator<Array<T>>;
Использование:
import { Collection, zip } from 'iterity';
const cont = new Collection(['one', 'two']);
const collection = zip<string | number>([1, 2], cont); // OUTPUT: [[1, 'one'], [2, 'two']]
// Недостающие элементы заменяются null:
const cont = new Collection(['one']);
const collection = zip<string | number>([1, 2], cont); // OUTPUT: [[1, 'one'], [2, null]]
Создает итератор, который объединяет элементы переданных коллекций с элементами исходной итерируемой коллекции, при этом вставляя переданные коллекции после исходной.
append<T, R>(additional: Iterable<R>, ...iterables: Array<Iterable<R>>): (iterable: Iterable<T>) => IterableIterator<T | R>;
Использование:
import { from, append } from 'iterity';
const collection = from([1, 2]).pipe(append([3, 4])); // OUTPUT: [1, 2, 3, 4]
Создает асинхронный итератор, который объединяет элементы переданных коллекций с элементами исходной итерируемой коллекции, при этом вставляя переданные коллекции после исходной.
appendAsync<T, R>(additional: AsyncIterable<R>, ...iterables: Array<AsyncIterable<R>>): (iterable: AsyncIterable<T>) => AsyncIterableIterator<T | R>;
Использование:
import { AsyncCollection, appendAsync } from 'iterity';
const nextAsyncCollection = new AsyncCollection([3, 4]);
const collection = new AsyncCollection([1, 2]).pipe(
appendAsync(nextAsyncCollection)
); // OUTPUT: [1, 2, 3, 4]
Создает итератор, который объединяет элементы переданных коллекций с элементами исходной итерируемой коллекции, при этом вставляя переданные коллекции перед исходной.
prepend<T, R>(additional: Iterable<R>, ...iterables: Array<Iterable<R>>): (iterable: Iterable<T>) => IterableIterator<T | R>;
Использование:
import { from, prepend } from 'iterity';
const collection = from([1, 2]).pipe(prepend([-1, 0])); // OUTPUT: [-1, 0, 1, 2]
Создает асинхронный итератор, который объединяет элементы переданных коллекций с элементами исходной итерируемой коллекции, при этом вставляя переданные коллекции после исходной.
prependAsync<T, R>(additional: AsyncIterable<R>, ...iterables: Array<AsyncIterable<R>>): (iterable: AsyncIterable<T>) => AsyncIterableIterator<T | R>;
Использование:
import { AsyncCollection, prependAsync } from 'iterity';
const nextAsyncCollection = new AsyncCollection([-1, 0]);
const collection = new AsyncCollection([1, 2]).pipe(
prependAsync(nextAsyncCollection)
); // OUTPUT: [-1, 0, 1, 2]
Создаёт итератор, который повторяет исходную коллекцию заданное количество раз. По умолчанию — бесконечное количество раз.
repeat<T>(times: number = Infinity): (iterable: Iterable<T>) => IterableIterator<T>;
Использование:
import { from, repeat } from 'iterity';
const collection = from([1, 2, 3]).pipe(repeat(3)); // OUTPUT: [1, 2, 3, 1, 2, 3, 1, 2, 3]