Skip to content

Latest commit

 

History

History

combiners

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

👈 Вернуться на главную

Комбинаторы

Функции-комбинаторы предназначены для объединения нескольких коллекций в одну.

Создает итератор, который объединяет элементы переданных коллекций в одну коллекцию.

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]