Spec-Zone.ru › Immutable.js

OrderedSet

Тип набора, который гарантирует, что порядок итерации значений будет соответствовать порядку, в котором они были add.

type OrderedSet<T> extends Set<T>

Обсуждение

Поведение итерации OrderedSet такое же, как у нативного ES6 Set.

Обратите внимание, что OrderedSet более ресурсоёмкие, чем не упорядоченные Set, и могут потреблять больше памяти. OrderedSet#add имеет амортизированную сложность O(log32 N), но не стабильна.

Создание

OrderedSet()

Создайте новый неизменяемый OrderedSet, содержащий значения из предоставленной коллекции.

OrderedSet<T>(collection?: Iterable<T> | ArrayLike<T>): OrderedSet<T>

Обсуждение

Примечание: OrderedSet — это функция-фабрика, а не класс, и не использует ключевое слово new при создании.

Статические методы

OrderedSet.isOrderedSet()

OrderedSet.isOrderedSet(maybeOrderedSet: unknown): boolean

OrderedSet.of()

OrderedSet.of<T>(...values: Array<T>): OrderedSet<T>

OrderedSet.fromKeys()

OrderedSet.fromKeys<T>(iter: Collection<T, unknown>): OrderedSet<T>
OrderedSet.fromKeys(obj: {[key: string]: unknown}): OrderedSet<string>

Члены

размер

Количество элементов в этом OrderedSet.

size: number

Переопределяет

Set#size

Постоянные изменения

union()

Возвращает OrderedSet, включающий любые значения из collections, которые ещё не существуют в этом OrderedSet.

union<C>(...collections: Array<Iterable<C>>): OrderedSet<T | C>

Переопределяет

Set#union()

псевдоним

merge()

псевдоним

concat()

Обсуждение

Примечание: union можно использовать в withMutations.

add()

Возвращает новый набор, который также включает это значение.

add(value: T): this

Унаследованно от

Set#add()

Обсуждение

Примечание: add можно использовать в withMutations.

delete()

Возвращает новый набор, из которого исключено это значение.

delete(value: T): this

Унаследованно от

Set#delete()

псевдоним

remove()

Обсуждение

Примечание: delete можно использовать в withMutations.

Примечание: delete нельзя безопасно использовать в IE8, используйте remove для поддержки старых браузеров.

clear()

Возвращает новый набор, не содержащий значений.

clear(): this

Унаследованно от

Set#clear()

Обсуждение

Примечание: clear можно использовать в withMutations.

intersect()

Возвращает набор, из которого удалены все значения, не содержащиеся также в collections.

intersect(...collections: Array<Iterable<T>>): this

Унаследованно от

Set#intersect()

Обсуждение

Примечание: intersect можно использовать в withMutations.

subtract()

Возвращает набор, исключая любые значения, содержащиеся в collections.

subtract(...collections: Array<Iterable<T>>): this

Унаследованно от

Set#subtract()

Обсуждение

const { OrderedSet } = require('immutable')
OrderedSet([ 1, 2, 3 ]).subtract([1, 3])
// OrderedSet [2]run it

Примечание: subtract можно использовать в withMutations.

update()

Это может быть очень полезно для «цепочки» обычной функции в последовательности методов. RxJS называет это «let», а lodash — «thru».

update<R>(updater: (value: this) => R): R

Унаследованно от

Collection#update()

Обсуждение

Например, для суммирования Seq после отображения и фильтрации:

const { Seq } = require('immutable')

function sum(collection) {
  return collection.reduce((sum, x) => sum + x, 0)
}
Seq([ 1, 2, 3 ])
  .map(x => x + 1)
  .filter(x => x % 2 === 0)
  .update(sum)
// 6run it

Алгоритмы последовательностей

map()

Возвращает новый набор со значениями, обработанными через функцию mapper.

map<M>(mapper: (value: T, key: T, iter: this) => M,context?: unknown): OrderedSet<M>

Переопределяет

Set#map()

Пример

OrderedSet([ 1, 2 ]).map(x => 10 * x)
// OrderedSet [10, 20]

flatMap()

Плоское отображение OrderedSet, возвращая новый OrderedSet.

flatMap<M>(mapper: (value: T, key: T, iter: this) => Iterable<M>,context?: unknown): OrderedSet<M>

Переопределяет

Set#flatMap()

Обсуждение

Аналогично set.map(...).flatten(true).

filter()

filter<F>(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): OrderedSet<F>
filter(predicate: (value: T, key: T, iter: this) => unknown,context?: unknown): this

Переопределяет

Set#filter()

partition()

partition<F, C>(predicate: (this: C, value: T, key: T, iter: this) => boolean,context?: C): [OrderedSet<T>, OrderedSet<F>]
partition<C>(predicate: (this: C, value: T, key: T, iter: this) => unknown,context?: C): [this, this]

Переопределяет

Set#partition()

zip()

zip<U>(other: Collection<unknown, U>): OrderedSet<[T, U]>
zip<U, V>(other1: Collection<unknown, U>,other2: Collection<unknown, V>): OrderedSet<[T, U, V]>
zip(...collections: Array<Collection<unknown, unknown>>): OrderedSet<unknown>

zipAll()

zipAll<U>(other: Collection<unknown, U>): OrderedSet<[T, U]>
zipAll<U, V>(other1: Collection<unknown, U>,other2: Collection<unknown, V>): OrderedSet<[T, U, V]>
zipAll(...collections: Array<Collection<unknown, unknown>>): OrderedSet<unknown>

zipWith()

zipWith<U, Z>(zipper: (value: T, otherValue: U) => Z,otherCollection: Collection<unknown, U>): OrderedSet<Z>
zipWith<U, V, Z>(zipper: (value: T, otherValue: U, thirdValue: V) => Z,otherCollection: Collection<unknown, U>,thirdCollection: Collection<unknown, V>): OrderedSet<Z>
zipWith<Z>(zipper: (...values: Array<unknown>) => Z,...collections: Array<Collection<unknown, unknown>>): OrderedSet<Z>

concat()

Возвращает новую коллекцию, в которой другие коллекции конкатенированы с этой.

concat<U>(...collections: Array<Iterable<U>>): Collection.Set<T | U>

Унаследованно от

Collection.Set#concat()

[Symbol.iterator]()

[Symbol.iterator](): IterableIterator<T>

Унаследованно от

Collection.Set#[Symbol.iterator]()

filterNot()

Возвращает новую коллекцию того же типа, содержащую только те записи, для которых функция predicate возвращает false.

filterNot(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): this

Унаследованно от

Collection#filterNot()

Обсуждение

const { Map } = require('immutable')
Map({ a: 1, b: 2, c: 3, d: 4}).filterNot(x => x % 2 === 0)
// Map { "a": 1, "c": 3 }run it

Примечание: filterNot() всегда возвращает новый экземпляр, даже если в результате не происходит фильтрации значений.

reverse()

Возвращает новую коллекцию того же типа в обратном порядке.

reverse(): this

Унаследованно от

Collection#reverse()

sort()

Возвращает новую коллекцию того же типа, которая содержит те же записи, стабильно отсортированные с помощью comparator.

sort(comparator?: (valueA: T, valueB: T) => number): this

Унаследованно от

Collection#sort()

Обсуждение

Если comparator не предоставлен, по умолчанию используется компаратор, использующий < и >.

comparator(valueA, valueB):

  • Возвращает 0, если элементы не должны быть поменяны местами.
  • Возвращает -1 (или любое отрицательное число), если valueA предшествует valueB
  • Возвращает 1 (или любое положительное число), если valueA следует за valueB
  • Является чистой функцией, т.е. для одной и той же пары значений она должна всегда возвращать одно и то же значение.

При сортировке коллекций, у которых нет определенного порядка, будут возвращены их упорядоченные эквиваленты. Например, map.sort() возвращает OrderedMap.

const { Map } = require('immutable')
Map({ "c": 3, "a": 1, "b": 2 }).sort((a, b) => {
  if (a < b) { return -1; }
  if (a > b) { return 1; }
  if (a === b) { return 0; }
});
// OrderedMap { "a": 1, "b": 2, "c": 3 }run it

Примечание: sort() всегда возвращает новый экземпляр, даже если исходный уже был отсортирован.

Примечание: Это всегда операция вычисления.

sortBy()

Как sort, но также принимает comparatorValueMapper, что позволяет сортировать более сложными способами:

sortBy<C>(comparatorValueMapper: (value: T, key: T, iter: this) => C,comparator?: (valueA: C, valueB: C) => number): this

Унаследованно от

Collection#sortBy()

Обсуждение

const { Map } = require('immutable')
const beattles = Map({
  John: { name: "Lennon" },
  Paul: { name: "McCartney" },
  George: { name: "Harrison" },
  Ringo: { name: "Starr" },
});
beattles.sortBy(member => member.name);run it

Примечание: sortBy() всегда возвращает новый экземпляр, даже если исходный уже был отсортирован.

Примечание: Это всегда операция вычисления.

groupBy()

Возвращает Collection.Keyed Collection.Keyeds, сгруппированных по возвращаемому значению функции grouper.

groupBy<G>(grouper: (value: T, key: T, iter: this) => G,context?: unknown): Seq.Keyed<G, Collection<T, T>>

Унаследованно от

Collection#groupBy()

Обсуждение

Примечание: Это всегда операция вычисления.

const { List, Map } = require('immutable')
const listOfMaps = List([
  Map({ v: 0 }),
  Map({ v: 1 }),
  Map({ v: 1 }),
  Map({ v: 0 }),
  Map({ v: 2 })
])
const groupsOfMaps = listOfMaps.groupBy(x => x.get('v'))
// Map {
//   0: List [ Map{ "v": 0 }, Map { "v": 0 } ],
//   1: List [ Map{ "v": 1 }, Map { "v": 1 } ],
//   2: List [ Map{ "v": 2 } ],
// }run it

Временные изменения

withMutations()

Примечание: не все методы могут быть использованы в мутабельной коллекции или внутри withMutations! Проверьте документацию каждого метода, чтобы узнать, может ли он безопасно использоваться в withMutations.

withMutations(mutator: (mutable: this) => unknown): this

Унаследованно от

Set#withMutations()

см

Map#withMutations

asMutable()

Примечание: не все методы могут быть использованы в мутабельной коллекции или внутри withMutations! Проверьте документацию каждого метода, чтобы узнать, может ли он безопасно использоваться в withMutations.

asMutable(): this

Унаследованно от

Set#asMutable()

см

Map#asMutable

wasAltered()

wasAltered(): boolean

Унаследованно от

Set#wasAltered()

см

Map#wasAltered

asImmutable()

asImmutable(): this

Унаследованно от

Set#asImmutable()

см

Map#asImmutable

Преобразование в типы JavaScript

toJS()

Глубоко преобразует этот набор коллекций в эквивалентный массив JavaScript.

toJS(): Array<DeepCopy<T>>

Унаследованно от

Collection.Set#toJS()

toJSON()

Поверхностно преобразует этот набор коллекций в эквивалентный массив JavaScript.

toJSON(): Array<T>

Унаследованно от

Collection.Set#toJSON()

toArray()

Поверхностно преобразует эту коллекцию в массив.

toArray(): Array<T>

Унаследованно от

Collection.Set#toArray()

toObject()

Поверхностно преобразует эту коллекцию в объект.

toObject(): {[key: string]: T}

Унаследованно от

Collection#toObject()

Обсуждение

Преобразует ключи в строки.

Преобразование в Seq

toSeq()

Возвращает Seq.Set.

toSeq(): Seq.Set<T>

Унаследовано от

Collection.Set#toSeq()

toKeyedSeq()

Возвращает Seq.Keyed из этого Collection, где индексы используются в качестве ключей.

toKeyedSeq(): Seq.Keyed<T, T>

Унаследовано от

Collection#toKeyedSeq()

Обсуждение

Это полезно, если вы хотите работать с Collection.Indexed и сохранить пары [индекс, значение].

Возвращаемый Seq будет иметь идентичный порядок итерации, как и этот Collection.

const { Seq } = require('immutable')
const indexedSeq = Seq([ 'A', 'B', 'C' ])
// Seq [ "A", "B", "C" ]
indexedSeq.filter(v => v === 'B')
// Seq [ "B" ]
const keyedSeq = indexedSeq.toKeyedSeq()
// Seq { 0: "A", 1: "B", 2: "C" }
keyedSeq.filter(v => v === 'B')
// Seq { 1: "B" }run it

toIndexedSeq()

Возвращает Seq.Indexed значений этого Collection, отбрасывая ключи.

toIndexedSeq(): Seq.Indexed<T>

Унаследовано от

Collection#toIndexedSeq()

toSetSeq()

Возвращает Seq.Set значений этого Collection, отбрасывая ключи.

toSetSeq(): Seq.Set<T>

Унаследовано от

Collection#toSetSeq()

Равенство значений

equals()

True, если этот и другой Collection имеют равенство значений, как определено Immutable.is().

equals(other: unknown): boolean

Унаследовано от

Collection#equals()

Обсуждение

Примечание: Это эквивалентно Immutable.is(this, other), но предоставлено для цепочек выражений.

hashCode()

Вычисляет и возвращает хэш-код для этого Collection.

hashCode(): number

Унаследовано от

Collection#hashCode()

Обсуждение

Хэш-код Collection используется для определения потенциального равенства и используется при добавлении этого элемента в Set или в качестве ключа в Map, позволяя поиск по другому экземпляру.

const a = List([ 1, 2, 3 ]);
const b = List([ 1, 2, 3 ]);
assert.notStrictEqual(a, b); // different instances
const set = Set([ a ]);
assert.equal(set.has(b), true);run it

Если два значения имеют одинаковый хэш-код, они не гарантированно равны. Если два значения имеют разные хэш-коды, они не могут быть равны.

Чтение значений

get()

get<NSV>(key: T, notSetValue: NSV): T | NSV
get(key: T): T | undefined

Унаследовано от

Collection#get()

has()

True, если ключ существует в этом Collection, используя Immutable.is для определения равенства.

has(key: T): boolean

Унаследовано от

Collection#has()

includes()

True, если значение существует в этом Collection, используя Immutable.is для определения равенства.

includes(value: T): boolean

Унаследовано от

Collection#includes()

псевдоним

contains()

first()

В случае, если Collection не пуст, возвращает первый элемент Collection. В случае, если Collection пуст, возвращает необязательное значение по умолчанию, если оно предоставлено; в противном случае возвращает undefined.

first<NSV>(notSetValue?: NSV): T | NSV

Унаследовано от

Collection#first()

last()

В случае, если Collection не пуст, возвращает последний элемент Collection. В случае, если Collection пуст, возвращает необязательное значение по умолчанию, если оно предоставлено; в противном случае возвращает undefined.

last<NSV>(notSetValue?: NSV): T | NSV

Унаследовано от

Collection#last()

Чтение глубоких значений

getIn()

Возвращает значение, найденное по пути ключей или индексов через вложенные Collection.

getIn(searchKeyPath: Iterable<unknown>, notSetValue?: unknown): unknown

Унаследовано от

Collection#getIn()

Обсуждение

const { Map, List } = require('immutable')
const deepData = Map({ x: List([ Map({ y: 123 }) ]) });
deepData.getIn(['x', 0, 'y']) // 123run it

Простые JavaScript объекты или массивы могут быть вложены в Immutable.js Collection, и getIn() может получить доступ к этим значениям:

const { Map, List } = require('immutable')
const deepData = Map({ x: [ { y: 123 } ] });
deepData.getIn(['x', 0, 'y']) // 123run it

hasIn()

True, если результат следования по пути ключей или индексов через вложенные Collection приводит к набору значений.

hasIn(searchKeyPath: Iterable<unknown>): boolean

Унаследовано от

Collection#hasIn()

Преобразование в Collection

toMap()

Преобразует этот Collection в Map. Бросает исключение, если ключи не хешируемы.

toMap(): Map<T, T>

Унаследовано от

Collection#toMap()

Обсуждение

Примечание: Это эквивалентно Map(this.toKeyedSeq()), но предоставлено для удобства и цепочек выражений.

toOrderedMap()

Преобразует этот Collection в Map, сохраняя порядок итерации.

toOrderedMap(): OrderedMap<T, T>

Унаследовано от

Collection#toOrderedMap()

Обсуждение

Примечание: Это эквивалентно OrderedMap(this.toKeyedSeq()), но предоставлено для удобства и цепочек выражений.

toSet()

Преобразует этот Collection в Set, отбрасывая ключи. Бросает исключение, если значения не хешируемы.

toSet(): Set<T>

Унаследовано от

Collection#toSet()

Обсуждение

Примечание: Это эквивалентно Set(this), но предоставлено для цепочек выражений.

toOrderedSet()

Преобразует этот Collection в Set, сохраняя порядок итерации и отбрасывая ключи.

toOrderedSet(): OrderedSet<T>

Унаследовано от

Collection#toOrderedSet()

Обсуждение

Примечание: Это эквивалентно OrderedSet(this.valueSeq()), но предоставлено для удобства и цепочек выражений.

toList()

Преобразует этот Collection в List, отбрасывая ключи.

toList(): List<T>

Унаследовано от

Collection#toList()

Обсуждение

Это похоже на List(collection), но предоставлено для цепочек выражений. Однако, при вызове на Map или других коллекциях с ключами, collection.toList() отбрасывает ключи и создаёт список только значений, а List(collection) создаёт список кортежей записей.

const { Map, List } = require('immutable')
var myMap = Map({ a: 'Apple', b: 'Banana' })
List(myMap) // List [ [ "a", "Apple" ], [ "b", "Banana" ] ]
myMap.toList() // List [ "Apple", "Banana" ]run it

toStack()

Преобразует этот Collection в Stack, отбрасывая ключи. Бросает исключение, если значения не хешируемы.

toStack(): Stack<T>

Унаследовано от

Collection#toStack()

Обсуждение

Примечание: Это эквивалентно Stack(this), но предоставлено для цепочек выражений.

Итераторы

keys()

Итератор ключей этого Collection.

keys(): IterableIterator<T>

Унаследовано от

Collection#keys()

Обсуждение

Примечание: это вернёт ES6 итератор, который не поддерживает алгоритмы последовательностей Immutable.js. Используйте keySeq вместо этого, если это необходимо.

values()

Итератор значений этого Collection.

values(): IterableIterator<T>

Унаследовано от

Collection#values()

Обсуждение

Примечание: это вернёт ES6 итератор, который не поддерживает алгоритмы последовательностей Immutable.js. Используйте valueSeq вместо этого, если это необходимо.

entries()

Итератор пар [ключ, значение] этого Collection в виде кортежей [ key, value ].

entries(): IterableIterator<[T, T]>

Унаследовано от

Collection#entries()

Обсуждение

Примечание: это вернёт ES6 итератор, который не поддерживает алгоритмы последовательностей Immutable.js. Используйте entrySeq вместо этого, если это необходимо.

Коллекции (Seq)

keySeq()

Возвращает новый Seq.Indexed ключей этого Collection, отбрасывая значения.

keySeq(): Seq.Indexed<T>

Унаследовано от

Collection#keySeq()

valueSeq()

Возвращает Seq.Indexed значений этого Collection, отбрасывая ключи.

valueSeq(): Seq.Indexed<T>

Унаследовано от

Collection#valueSeq()

entrySeq()

Возвращает новый Seq.Indexed кортежей [ключ, значение].

entrySeq(): Seq.Indexed<[T, T]>

Унаследовано от

Collection#entrySeq()

Побочные эффекты

forEach()

sideEffect выполняется для каждой записи в Collection.

forEach(sideEffect: (value: T, key: T, iter: this) => unknown,context?: unknown): number

Унаследовано от

Collection#forEach()

Обсуждение

В отличие от Array#forEach, если какой-либо вызов sideEffect возвращает false, итерация остановится. Возвращает количество обработанных записей (включая последнюю итерацию, которая вернула false).

Создание подмножеств

slice()

Возвращает новый Collection того же типа, представляющий часть этого Collection от начала до конца, но не включая конец.

slice(begin?: number, end?: number): this

Унаследовано от

Collection#slice()

Обсуждение

Если begin отрицательный, он смещается от конца Collection. Например, slice(-2) возвращает Collection из двух последних записей. Если не указано, новый Collection начнётся с начала этого Collection.

Если end отрицательный, он смещается от конца Collection. Например, slice(0, -1) возвращает Collection всего, кроме последней записи. Если не указано, новый Collection будет продолжаться до конца этого Collection.

Если запрашиваемый срез эквивалентен текущему Collection, возвращается он сам.

rest()

Возвращает новый Collection того же типа, содержащий все записи, кроме первой.

rest(): this

Унаследовано от

Collection#rest()
END_OF_DOCUMENT_MARKER

butLast()

Возвращает новую коллекцию того же типа, содержащую все элементы, кроме последнего.

butLast(): this

Унаследовано от

Collection#butLast()

skip()

Возвращает новую коллекцию того же типа, исключающую первые amount элементы из этой коллекции.

skip(amount: number): this

Унаследовано от

Collection#skip()

skipLast()

Возвращает новую коллекцию того же типа, исключающую последние amount элементы из этой коллекции.

skipLast(amount: number): this

Унаследовано от

Collection#skipLast()

skipWhile()

Возвращает новую коллекцию того же типа, включающую элементы, начиная с момента, когда predicate впервые возвращает false.

skipWhile(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): this

Унаследовано от

Collection#skipWhile()

Обсуждение

const { List } = require('immutable')
List([ 'dog', 'frog', 'cat', 'hat', 'god' ])
  .skipWhile(x => x.match(/g/))
// List [ "cat", "hat", "god" ]run it

skipUntil()

Возвращает новую коллекцию того же типа, включающую элементы, начиная с момента, когда predicate впервые возвращает true.

skipUntil(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): this

Унаследовано от

Collection#skipUntil()

Обсуждение

const { List } = require('immutable')
List([ 'dog', 'frog', 'cat', 'hat', 'god' ])
  .skipUntil(x => x.match(/hat/))
// List [ "hat", "god" ]run it

take()

Возвращает новую коллекцию того же типа, включающую первые amount элементы из этой коллекции.

take(amount: number): this

Унаследовано от

Collection#take()

takeLast()

Возвращает новую коллекцию того же типа, включающую последние amount элементы из этой коллекции.

takeLast(amount: number): this

Унаследовано от

Collection#takeLast()

takeWhile()

Возвращает новую коллекцию того же типа, включающую элементы из этой коллекции, пока predicate возвращает true.

takeWhile(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): this

Унаследовано от

Collection#takeWhile()

Обсуждение

const { List } = require('immutable')
List([ 'dog', 'frog', 'cat', 'hat', 'god' ])
  .takeWhile(x => x.match(/o/))
// List [ "dog", "frog" ]run it

takeUntil()

Возвращает новую коллекцию того же типа, включающую элементы из этой коллекции, пока predicate возвращает false.

takeUntil(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): this

Унаследовано от

Collection#takeUntil()

Обсуждение

const { List } = require('immutable')
List([ 'dog', 'frog', 'cat', 'hat', 'god' ])
  .takeUntil(x => x.match(/at/))
// List [ "dog", "frog" ]run it

Комбинация

flatten()

flatten(depth?: number): Collection<unknown, unknown>
flatten(shallow?: boolean): Collection<unknown, unknown>

Унаследовано от

Collection#flatten()

Сведение значения

reduce()

reduce<R>(reducer: (reduction: R, value: T, key: T, iter: this) => R,initialReduction: R,context?: unknown): R
reduce<R>(reducer: (reduction: T | R, value: T, key: T, iter: this) => R): R

Унаследовано от

Collection#reduce()

reduceRight()

reduceRight<R>(reducer: (reduction: R, value: T, key: T, iter: this) => R,initialReduction: R,context?: unknown): R
reduceRight<R>(reducer: (reduction: T | R, value: T, key: T, iter: this) => R): R

Унаследовано от

Collection#reduceRight()

every()

True, если predicate возвращает true для всех элементов в коллекции.

every(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): boolean

Унаследовано от

Collection#every()

some()

True, если predicate возвращает true для любого элемента в коллекции.

some(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): boolean

Унаследовано от

Collection#some()

join()

Объединяет значения в строку, вставляя разделитель между каждым. По умолчанию разделитель — ",".

join(separator?: string): string

Унаследовано от

Collection#join()

isEmpty()

Возвращает true, если эта коллекция не содержит значений.

isEmpty(): boolean

Унаследовано от

Collection#isEmpty()

Обсуждение

Для некоторых ленивых Seq, isEmpty может потребоваться выполнить итерацию, чтобы определить пустоту. Будет выполнена не более одной итерации.

count()

count(): number
count(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): number

Унаследовано от

Collection#count()

countBy()

Возвращает Seq.Keyed подсчетов, сгруппированных по возвращаемому значению функции grouper.

countBy<G>(grouper: (value: T, key: T, iter: this) => G,context?: unknown): Map<G, number>

Унаследовано от

Collection#countBy()

Обсуждение

Примечание: это не ленивая операция.

Поиск значения

find()

Возвращает первое значение, для которого predicate возвращает true.

find(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown,notSetValue?: T): T | undefined

Унаследовано от

Collection#find()

findLast()

Возвращает последнее значение, для которого predicate возвращает true.

findLast(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown,notSetValue?: T): T | undefined

Унаследовано от

Collection#findLast()

Обсуждение

Примечание: predicate будет вызываться для каждого элемента в обратном порядке.

findEntry()

Возвращает первый элемент [ключ, значение], для которого predicate возвращает true.

findEntry(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown,notSetValue?: T): [T, T] | undefined

Унаследовано от

Collection#findEntry()

findLastEntry()

Возвращает последний элемент [ключ, значение], для которого predicate возвращает true.

findLastEntry(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown,notSetValue?: T): [T, T] | undefined

Унаследовано от

Collection#findLastEntry()

Обсуждение

Примечание: predicate будет вызываться для каждого элемента в обратном порядке.

findKey()

Возвращает ключ, для которого predicate возвращает true.

findKey(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): T | undefined

Унаследовано от

Collection#findKey()

findLastKey()

Возвращает последний ключ, для которого predicate возвращает true.

findLastKey(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): T | undefined

Унаследовано от

Collection#findLastKey()

Обсуждение

Примечание: predicate будет вызываться для каждого элемента в обратном порядке.

keyOf()

Возвращает ключ, связанный со значением поиска, или undefined.

keyOf(searchValue: T): T | undefined

Унаследовано от

Collection#keyOf()

lastKeyOf()

Возвращает последний ключ, связанный со значением поиска, или undefined.

lastKeyOf(searchValue: T): T | undefined

Унаследовано от

Collection#lastKeyOf()

max()

Возвращает максимальное значение в этой коллекции. Если какие-либо значения сравнимы, будет возвращено первое найденное.

max(comparator?: (valueA: T, valueB: T) => number): T | undefined

Унаследовано от

Collection#max()

Обсуждение

comparator используется так же, как и Collection#sort. Если оно не предоставлено, по умолчанию используется компаратор >.

Когда два значения считаются эквивалентными, возвращается первое встретившееся. В противном случае max будет работать независимо от порядка ввода, при условии, что компаратор коммутативен. По умолчанию компаратор > коммутативен только в случае, если типы не различаются.

Если comparator возвращает 0, и любое из значений является NaN, undefined или null, возвращается это значение.

maxBy()

Аналогично max, но также принимает comparatorValueMapper, что позволяет сравнивать более сложными способами:

maxBy<C>(comparatorValueMapper: (value: T, key: T, iter: this) => C,comparator?: (valueA: C, valueB: C) => number): T | undefined

Унаследовано от

Collection#maxBy()

Обсуждение

const { List, } = require('immutable');
const l = List([
  { name: 'Bob', avgHit: 1 },
  { name: 'Max', avgHit: 3 },
  { name: 'Lili', avgHit: 2 } ,
]);
l.maxBy(i => i.avgHit); // will output { name: 'Max', avgHit: 3 }run it

min()

Возвращает минимальное значение в этой коллекции. Если какие-либо значения сравнимы, будет возвращено первое найденное.

min(comparator?: (valueA: T, valueB: T) => number): T | undefined

Унаследовано от

Collection#min()

Обсуждение

comparator используется так же, как и Collection#sort. Если оно не предоставлено, по умолчанию используется компаратор <.

Когда два значения считаются эквивалентными, возвращается первое встретившееся. В противном случае min будет работать независимо от порядка ввода, при условии, что компаратор коммутативен. По умолчанию компаратор < коммутативен только в случае, если типы не различаются.

Если comparator возвращает 0, и любое из значений является NaN, undefined или null, возвращается это значение.

minBy()

Аналогично min, но также принимает comparatorValueMapper, что позволяет сравнивать более сложными способами:

minBy<C>(comparatorValueMapper: (value: T, key: T, iter: this) => C,comparator?: (valueA: C, valueB: C) => number): T | undefined

Унаследовано от

Collection#minBy()

Обсуждение

const { List, } = require('immutable');
const l = List([
  { name: 'Bob', avgHit: 1 },
  { name: 'Max', avgHit: 3 },
  { name: 'Lili', avgHit: 2 } ,
]);
l.minBy(i => i.avgHit); // will output { name: 'Bob', avgHit: 1 }run it

Сравнение

isSubset()

True, если iter содержит все значения в этой коллекции.

isSubset(iter: Iterable<T>): boolean

Унаследовано от

Collection#isSubset()

isSuperset()

True, если эта коллекция содержит все значения в iter.

isSuperset(iter: Iterable<T>): boolean

Унаследовано от

Collection#isSuperset()
Эта документация сгенерирована из immutable.d.ts. Приветствуются pull запросы и вопросы.

© 2014–present, Lee Byron and other contributors
Licensed under the 3-clause BSD License.
https://immutable-js.com/docs/v4.2.1/OrderedSet/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API