Функции-селекторы предназначены для выбора определенных значений из коллекции и используются с методом pipe
, хотя могут использоваться обособленно без контейнеров.
- filter
- filterAsync
- skip
- skipAsync
- skipWhile
- skipWhileAsync
- slice
- sliceAsync
- take
- takeAsync
- takeWhile
- takeWhileAsync
Функция для фильтрации коллекции по условию, заданному в предикате:
filter<T>(predicate: (value: T) => boolean): (iterable: Iterable<T>) => IterableIterator<T>;
Использование:
import { from, filter } from 'iterity';
const collection = from([1, 6, 2, 8]).pipe(filter((num) => num > 2)); // OUTPUT: [6, 8]
Функция для фильтрации асинхронной коллекции по условию, заданному в предикате:
filterAsync<T>(predicate: (value: T) => boolean): (iterable: AsyncIterable<T>) => AsyncIterableIterator<T>;
Использование:
import { AsyncCollection, filterAsync } from 'iterity';
const collection = new AsyncCollection([1, 6, 2, 8]).pipe(
filterAsync((num) => num > 2)
); // OUTPUT: [6, 8]
Функция для создания итератора, исключающего N первых элементов исходного итератора:
skip(amount: number): <T>(iterable: Iterable<T>) => IterableIterator<T>;
Использование:
import { from, skip } from 'iterity';
const collection = from([1, 2, 3, 4]).pipe(skip(1)); // OUTPUT: [2, 3, 4]
Функция для создания асинхронного итератора, исключающего N первых элементов исходного итератора:
skipAsync(amount: number): <T>(iterable: AsyncIterable<T>) => AsyncIterableIterator<T>;
Использование:
import { AsyncCollection, skipAsync } from 'iterity';
const collection = new AsyncCollection([1, 2, 3, 4]).pipe(skipAsync(1)); // OUTPUT: [2, 3, 4]
Функция для создания итератора, исключающего первые элементы исходного итератора, пока соблюдается условие:
skipWhile<T>(predicate: (value: T) => boolean): (iterable: Iterable<T>) => IterableIterator<T>;
Использование:
import { from, skipWhile } from 'iterity';
const collection = from([1, 2, 3, 4]).pipe(skipWhile((num) => num < 3)); // OUTPUT: [3, 4]
Функция для создания асинхронного итератора, исключающего первые элементы исходного итератора, пока соблюдается условие:
skipWhileAsync<T>(predicate: (value: T) => boolean): (iterable: AsyncIterable<T>) => AsyncIterableIterator<T>;
Использование:
import { AsyncCollection, skipWhileAsync } from 'iterity';
const collection = new AsyncCollection([1, 2, 3, 4]).pipe(
skipWhileAsync((num) => num < 3)
); // OUTPUT: [3, 4]
Функция для создания итератора для определённого диапазона значений исходного итератора:
slice(from: number, to: number): <T>(iterable: Iterable<T>) => IterableIterator<T>;
Использование:
import { from, slice } from 'iterity';
const collection = from([1, 2, 3, 4]).pipe(slice(1, 3)); // OUTPUT: [2, 3]
Функция для создания асинхронного итератора для определённого диапазона значений исходного итератора:
sliceAsync(from: number, to: number): <T>(iterable: AsyncIterable<T>) => AsyncIterableIterator<T>;
Использование:
import { AsyncCollection, sliceAsync } from 'iterity';
const collection = new AsyncCollection([1, 2, 3, 4]).pipe(sliceAsync(1, 3)); // OUTPUT: [2, 3]
Функция для создания итератора для первых N элементов исходного итератора:
take(limit: number): <T>(iterable: Iterable<T>) => IterableIterator<T>;
Использование:
import { from, take } from 'iterity';
const collection = from([1, 2, 3, 4]).pipe(take(3)); // OUTPUT: [1, 2, 3]
Функция для создания асинхронного итератора для первых N элементов исходного итератора:
takeAsync(limit: number): <T>(iterable: AsyncIterable<T>) => AsyncIterableIterator<T>;
Использование:
import { AsyncCollection, takeAsync } from 'iterity';
const collection = new AsyncCollection([1, 2, 3, 4]).pipe(takeAsync(3)); // OUTPUT: [1, 2, 3]
Функция для создания итератора, перебирающего первые элементы исходного итератора, пока соблюдается условие:
takeWhile<T>(predicate: (value: T) => boolean): (iterable: Iterable<T>) => IterableIterator<T>;
Использование:
import { from, takeWhile } from 'iterity';
const collection = from([1, 2, 3, 4]).pipe(takeWhile((num) => num < 3)); // OUTPUT: [1, 2]
Функция для создания асинхронного итератора, перебирающего первые элементы исходного итератора, пока соблюдается условие:
takeWhileAsync<T>(predicate: (value: T) => boolean): (iterable: AsyncIterable<T>) => AsyncIterableIterator<T>;
Использование:
import { AsyncCollection, takeWhileAsync } from 'iterity';
const collection = new AsyncCollection([1, 2, 3, 4]).pipe(
takeWhileAsync((num) => num < 3)
); // OUTPUT: [1, 2]