Spec-Zone.ru › Immutable.js

Seq.Keyed

Seq которые представляют пары ключ-значение.

type Seq.Keyed<K, V> extends Seq<K, V>, Collection.Keyed<K, V>

Создание

Seq.Keyed()

Seq.Keyed<K, V>(collection?: Iterable<[K, V]>): Seq.Keyed<K, V>
Seq.Keyed<V>(obj: {[key: string]: V}): Seq.Keyed<string, V>

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

toJS()

Глубоко преобразует этот Seq.Keyed в эквивалентный объект JavaScript.

toJS(): {[key: string]: DeepCopy<V>}

Переопределения

Collection#toJS()

Обсуждение

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

toJSON()

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

toJSON(): {[key: string]: V}

Переопределения

Collection#toJSON()

Обсуждение

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

toArray()

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

toArray(): Array<[K, V]>

Переопределения

Collection#toArray()

toObject()

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

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

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

Collection#toObject()

Обсуждение

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

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

toSeq()

Возвращает себя

toSeq(): this

Переопределения

Collection#toSeq()

toKeyedSeq()

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

toKeyedSeq(): Seq.Keyed<K, V>

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

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 значений этой коллекции, отбрасывая ключи.

toIndexedSeq(): Seq.Indexed<V>

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

Collection#toIndexedSeq()

toSetSeq()

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

toSetSeq(): Seq.Set<V>

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

Collection#toSetSeq()

Комбинирование

concat()

concat<KC, VC>(...collections: Array<Iterable<[KC, VC]>>): Seq.Keyed<K | KC, V | VC>
concat<C>(...collections: Array<{[key: string]: C}>): Seq.Keyed<K | string, V | C>

Переопределения

Collection#concat()

flatten()

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

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

Collection#flatten()

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

map()

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

map<M>(mapper: (value: V, key: K, iter: this) => M,context?: unknown): Seq.Keyed<K, M>

Переопределения

Seq#map()

Пример

const { Seq } = require('immutable')
Seq.Keyed({ a: 1, b: 2 }).map(x => 10 * x)
// Seq { "a": 10, "b": 20 }

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

flatMap()

Плоско отображает Seq, возвращая Seq того же типа.

flatMap<KM, VM>(mapper: (value: V, key: K, iter: this) => Iterable<[KM, VM]>,context?: unknown): Seq.Keyed<KM, VM>

Переопределения

Seq#flatMap()

Обсуждение

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

filter()

filter<F>(predicate: (value: V, key: K, iter: this) => boolean,context?: unknown): Seq.Keyed<K, F>
filter(predicate: (value: V, key: K, iter: this) => unknown,context?: unknown): this

Переопределения

Seq#filter()

partition()

partition<F, C>(predicate: (this: C, value: V, key: K, iter: this) => boolean,context?: C): [Seq.Keyed<K, V>, Seq.Keyed<K, F>]
partition<C>(predicate: (this: C, value: V, key: K, iter: this) => unknown,context?: C): [this, this]

Переопределения

Seq#partition()

filterNot()

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

filterNot(predicate: (value: V, key: K, 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: V, valueB: V) => 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: V, key: K, 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: V, key: K, iter: this) => G,context?: unknown): Seq.Keyed<G, Collection<K, V>>

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

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

Функции последовательностей

mapKeys()

mapKeys<M>(mapper: (key: K, value: V, iter: this) => M,context?: unknown): Seq.Keyed<M, V>

Переопределения

Collection.Keyed#mapKeys()

см.

Collection.Keyed.mapKeys

mapEntries()

mapEntries<KM, VM>(mapper: (entry: [K, V], index: number, iter: this) => [KM, VM] | undefined,context?: unknown): Seq.Keyed<KM, VM>

Переопределения

Collection.Keyed#mapEntries()

см.

Collection.Keyed.mapEntries

flip()

flip(): Seq.Keyed<V, K>

Переопределения

Collection.Keyed#flip()

см.

Collection.Keyed.flip

Итераторы

[Symbol.iterator]()

[Symbol.iterator](): IterableIterator<[K, V]>

Переопределения

Collection#[Symbol.iterator]()

keys()

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

keys(): IterableIterator<K>

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

Collection#keys()

Обсуждение

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

values()

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

values(): IterableIterator<V>

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

Collection#values()

Обсуждение

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

entries()

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

entries(): IterableIterator<[K, V]>

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

Collection#entries()

Обсуждение

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

Члены

size

Некоторые Seq могут описывать свой размер лениво. В этом случае size будет целым числом. В противном случае он будет undefined.

size: number | undefined

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

Seq#size

Обсуждение

Например, Seq, возвращаемые из map() или reverse() сохраняют размер исходного Seq, в то время как filter() нет.

Примечание: Range, Repeat и Seq из Array и Object всегда будут иметь размер.

Принудительное вычисление

cacheResult()

Поскольку последовательности ленивы и предназначены для объединения в цепочки, они не кэшируют свои результаты. Например, эта функция map вызывается в общей сложности 6 раз, так как каждый join итерирует Seq из трёх значений.

cacheResult(): this

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

Seq#cacheResult()

Обсуждение

var squares = Seq([ 1, 2, 3 ]).map(x => x  x)
squares.join() + squares.join()

Если известно, что Seq будет использоваться несколько раз, может быть более эффективным сначала кэшировать его в памяти. Здесь функция map вызывается только 3 раза.

var squares = Seq([ 1, 2, 3 ]).map(x => x  x).cacheResult()
squares.join() + squares.join()

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

Примечание: после вызова cacheResult, Seq всегда будет иметь size.

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

equals()

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

equals(other: unknown): boolean

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

Collection#equals()

Обсуждение

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

hashCode()

Вычисляет и возвращает хешированный идентификатор для этого набора.

hashCode(): number

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

Collection#hashCode()

Обсуждение

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

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: K, notSetValue: NSV): V | NSV
get(key: K): V | undefined

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

Collection#get()

has()

True, если ключ существует в этом наборе, используя хеш-код для определения равенства.

has(key: K): boolean

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

Collection#has()

includes()

True, если значение существует в этом наборе, используя хеш-код для определения равенства.

includes(value: V): boolean

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

Collection#includes()

псевдоним

contains()

first()

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

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

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

Collection#first()

last()

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

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

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

Collection#last()

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

getIn()

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

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, и getIn() может также получить доступ к этим значениям:

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

hasIn()

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

hasIn(searchKeyPath: Iterable<unknown>): boolean

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

Collection#hasIn()

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

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

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

toMap()

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

toMap(): Map<K, V>

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

Collection#toMap()

Обсуждение

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

toOrderedMap()

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

toOrderedMap(): OrderedMap<K, V>

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

Collection#toOrderedMap()

Обсуждение

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

toSet()

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

toSet(): Set<V>

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

Collection#toSet()

Обсуждение

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

toOrderedSet()

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

toOrderedSet(): OrderedSet<V>

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

Collection#toOrderedSet()

Обсуждение

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

toList()

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

toList(): List<V>

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

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()

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

toStack(): Stack<V>

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

Collection#toStack()

Обсуждение

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

Наборы (Seq)

keySeq()

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

keySeq(): Seq.Indexed<K>

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

Collection#keySeq()

valueSeq()

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

valueSeq(): Seq.Indexed<V>

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

Collection#valueSeq()

entrySeq()

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

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

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

Collection#entrySeq()

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

forEach()

Функция sideEffect выполняется для каждой записи в наборе.

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

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

Collection#forEach()

Обсуждение

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

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

slice()

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

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

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

Collection#slice()

Обсуждение

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

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

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

rest()

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

rest(): this

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

Collection#rest()

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: V, key: K, 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: V, key: K, 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: V, key: K, 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: V, key: K, 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

Сокращение значения

reduce()

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

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

Collection#reduce()

reduceRight()

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

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

Collection#reduceRight()

every()

True, если predicate возвращает true для всех записей в наборе.

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

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

Collection#every()

some()

True, если predicate возвращает true для любой записи в наборе.

some(predicate: (value: V, key: K, 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: V, key: K, iter: this) => boolean,context?: unknown): number

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

Collection#count()

countBy()

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

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

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

Collection#countBy()

Обсуждение

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

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

find()

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

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

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

Collection#find()

findLast()

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

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

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

Collection#findLast()

Обсуждение

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

findEntry()

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

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

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

Collection#findEntry()

findLastEntry()

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

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

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

Collection#findLastEntry()

Обсуждение

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

findKey()

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

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

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

Collection#findKey()

findLastKey()

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

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

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

Collection#findLastKey()

Обсуждение

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

keyOf()

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

keyOf(searchValue: V): K | undefined

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

Collection#keyOf()

lastKeyOf()

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

lastKeyOf(searchValue: V): K | undefined

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

Collection#lastKeyOf()

max()

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

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

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

Collection#max()

Обсуждение

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

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

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

maxBy()

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

maxBy<C>(comparatorValueMapper: (value: V, key: K, iter: this) => C,comparator?: (valueA: C, valueB: C) => number): V | 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: V, valueB: V) => number): V | undefined

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

Collection#min()

Обсуждение

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

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

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

minBy()

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

minBy<C>(comparatorValueMapper: (value: V, key: K, iter: this) => C,comparator?: (valueA: C, valueB: C) => number): V | 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<V>): boolean

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

Collection#isSubset()

isSuperset()

True, если этот набор включает все значения в iter.

isSuperset(iter: Iterable<V>): 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/Seq.Keyed/

Spec-Zone.ru

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