Множество
Коллекция уникальных значений с O(log32 N) добавленными и имеющимися.
type Set<T> extends Collection.Set<T>
Обсуждение
При итерировании множества записи будут представлять собой пары (значение, значение). Порядок итерирования множества не определен, но является стабильным. Несколько итераций одного и того же множества будут итерироваться в одном и том же порядке.
Значения множества, как и ключи карты, могут быть любого типа. Равенство определяется с помощью Immutable.is, что позволяет множествам уникально включать другие неизменяемые коллекции, пользовательские типы значений и NaN.
Создание
Множество()
Создайте новое неизменяемое множество, содержащее значения предоставленной коллекции.
Set<T>(collection?: Iterable<T> | ArrayLike<T>): Set<T>
Обсуждение
Примечание: Set — это функция-фабрика, а не класс, и она не использует ключевое слово new при создании.
Статические методы
Set.isSet()
Set.isSet(maybeSet: unknown): boolean
Set.of()
Set.of<T>(...values: Array<T>): Set<T>
Set.fromKeys()
Set.fromKeys<T>(iter: Collection<T, unknown>): Set<T>
Set.fromKeys(obj: {[key: string]: unknown}): Set<string>
Set.intersect()
Set.intersect<T>(sets: Iterable<Iterable<T>>): Set<T>
Set.union()
Set.union<T>(sets: Iterable<Iterable<T>>): Set<T>
Члены
размер
Количество элементов в этом множестве.
size: number
Постоянные изменения
добавить()
Возвращает новое множество, которое также включает это значение.
add(value: T): this
Обсуждение
Примечание: add может использоваться в withMutations.
удалить()
Возвращает новое множество, из которого исключено это значение.
delete(value: T): this
Псевдоним
remove()Обсуждение
Примечание: delete может использоваться в withMutations.
Примечание: delete нельзя безопасно использовать в IE8, используйте remove при поддержке старых браузеров.
очистить()
Возвращает новое множество, не содержащее значений.
clear(): this
Обсуждение
Примечание: clear может использоваться в withMutations.
объединение()
Возвращает множество, включающее любые значения из collections, которые еще не существуют в этом множестве.
union<C>(...collections: Array<Iterable<C>>): Set<T | C>
Псевдоним
merge()Псевдоним
concat()Обсуждение
Примечание: union может использоваться в withMutations.
пересечение()
Возвращает множество, из которого удалены любые значения, не содержащиеся также в collections.
intersect(...collections: Array<Iterable<T>>): this
Обсуждение
Примечание: intersect может использоваться в withMutations.
вычесть()
Возвращает множество, из которого исключены любые значения, содержащиеся в collections.
subtract(...collections: Array<Iterable<T>>): this
Обсуждение
const { OrderedSet } = require('immutable')
OrderedSet([ 1, 2, 3 ]).subtract([1, 3])
// OrderedSet [2]run it
Примечание: subtract может использоваться в withMutations.
обновить()
Это может быть очень полезно как способ «цепления» обычной функции в последовательность методов. 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 Временные изменения
withMutations()
Примечание: не все методы могут быть использованы в изменяемой коллекции или в withMutations! Проверьте документацию для каждого метода, чтобы узнать, упоминается ли в ней возможность использования в withMutations.
withMutations(mutator: (mutable: this) => unknown): this
см.
asMutable()
Примечание: не все методы могут быть использованы в изменяемой коллекции или в withMutations! Проверьте документацию для каждого метода, чтобы узнать, упоминается ли в ней возможность использования в withMutations.
asMutable(): this
см.
Алгоритмы последовательностей
map()
Возвращает новое множество со значениями, прошедшими через функцию mapper.
map<M>(mapper: (value: T, key: T, iter: this) => M, context?: unknown): Set<M>
Переопределяет
Collection.Set#map()Пример
Set([1,2]).map(x => 10 * x) // Set [10,20]
flatMap()
Выполняет плоское отображение множества, возвращая новое множество.
flatMap<M>(mapper: (value: T, key: T, iter: this) => Iterable<M>,context?: unknown): Set<M>
Переопределяет
Collection.Set#flatMap()Обсуждение
Аналогично set.map(...).flatten(true).
фильтр()
filter<F>(predicate: (value: T, key: T, iter: this) => boolean,context?: unknown): Set<F> filter(predicate: (value: T, key: T, iter: this) => unknown,context?: unknown): this
Переопределяет
Collection.Set#filter()
разделение()
partition<F, C>(predicate: (this: C, value: T, key: T, iter: this) => boolean,context?: C): [Set<T>, Set<F>] partition<C>(predicate: (this: C, value: T, key: T, iter: this) => unknown,context?: C): [this, this]
Переопределяет
Collection.Set#partition()
concat()
Возвращает новую коллекцию с другими коллекциями, конкатенированными с этой.
concat<U>(...collections: Array<Iterable<U>>): Collection.Set<T | U>
Унаследовано от
Collection.Set#concat()
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(): this
Унаследовано от
Collection#reverse()
сортировать()
Возвращает новую коллекцию того же типа, содержащую те же записи, стабильно отсортированные с помощью 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
Преобразование в типы 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
toKeyedSeq()
Возвращает Seq.Keyed из этой коллекции, где индексы рассматриваются как ключи.
toKeyedSeq(): Seq.Keyed<T, T>
Унаследовано от
Collection#toKeyedSeq()Обсуждение
Это полезно, если вы хотите работать с Collection.Indexed и сохранить пары [индекс, значение].
Возвращаемая Seq будет иметь такой же порядок итерации, как и эта коллекция.
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, то будет возвращена сама Collection.
rest()
Возвращает новую Collection того же типа, содержащую все записи, кроме первой.
rest(): this
Унаследовано от
Collection#rest()
butLast()
Возвращает новую Collection того же типа, содержащую все записи, кроме последней.
butLast(): this
Унаследовано от
Collection#butLast()
skip()
Возвращает новую Collection того же типа, исключая первые amount записи из этого объекта Collection.
skip(amount: number): this
Унаследовано от
Collection#skip()
skipLast()
Возвращает новую Collection того же типа, исключая последние amount записи из этого объекта Collection.
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()Обсуждение
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()
© 2014–present, Lee Byron and other contributors
Licensed under the 3-clause BSD License.
https://immutable-js.com/docs/v4.2.1/Set/