Spec-Zone.ru › Immutable.js

Collection.Indexed

Индексированные коллекции имеют нарастающие числовые ключи. Они демонстрируют немного отличное поведение от Collection.Keyed для некоторых методов, чтобы лучше отразить поведение Array JavaScript, и добавляют методы, которые не имеют смысла для неиндексированных коллекций, таких как indexOf.

type Collection.Indexed<T> extends Collection<number, T>

Обсуждение

В отличие от массивов JavaScript, Collection.Indexed всегда плотные. «Отключенные» индексы и undefined индексы неразличимы, и все индексы от 0 до size посещаются при итерации.

Все методы Collection.Indexed возвращают повторно индексированные коллекции. Другими словами, индексы всегда начинаются с 0 и увеличиваются до размера. Если вы хотите сохранить индексы, используя их в качестве ключей, преобразуйте в Collection.Keyed, вызвав toKeyedSeq.

Создание

Collection.Indexed()

Создает новую Collection.Indexed.

Collection.Indexed<T>(collection?: Iterable<T> | ArrayLike<T>): Collection.Indexed<T>

Обсуждение

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

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

toJS()

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

toJS(): Array<DeepCopy<T>>

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

Collection#toJS()

toJSON()

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

toJSON(): Array<T>

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

Collection#toJSON()

toArray()

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

toArray(): Array<T>

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

Collection#toArray()

toObject()

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

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

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

Collection#toObject()

Обсуждение

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

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

get()

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

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

Collection#get()

has()

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

has(key: number): boolean

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

Collection#has()

includes()

Истина, если значение существует в этой 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()

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

toSeq()

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

toSeq(): Seq.Indexed<T>

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

Collection#toSeq()

fromEntrySeq()

Если это коллекция кортежей пар [ключ, значение], она вернёт Seq.Keyed этих пар.

fromEntrySeq(): Seq.Keyed<unknown, unknown>

toKeyedSeq()

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

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

toIndexedSeq(): Seq.Indexed<T>

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

Collection#toIndexedSeq()

toSetSeq()

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

toSetSeq(): Seq.Set<T>

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

Collection#toSetSeq()

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

interpose()

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

interpose(separator: T): this

interleave()

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

interleave(...collections: Array<Collection<unknown, T>>): this

Обсуждение

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

const { List } = require('immutable')
List([ 1, 2, 3 ]).interleave(List([ 'A', 'B', 'C' ]))
// List [ 1, "A", 2, "B", 3, "C" ]run it

Самая короткая коллекция останавливает вплетание.

List([ 1, 2, 3 ]).interleave(
  List([ 'A', 'B' ]),
  List([ 'X', 'Y', 'Z' ])
)
// List [ 1, "A", "X", 2, "B", "Y" ]run it

Поскольку interleave() повторно индексирует значения, она создаёт полную копию, что имеет сложность O(N).

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

splice()

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

splice(index: number, removeNum: number, ...values: Array<T>): this

Обсуждение

index может быть отрицательным числом, которое индексирует назад с конца коллекции. s.splice(-2) выполняет вставку после второго с конца элемента.

const { List } = require('immutable')
List([ 'a', 'b', 'c', 'd' ]).splice(1, 2, 'q', 'r', 's')
// List [ "a", "q", "r", "s", "d" ]run it

Поскольку splice() повторно индексирует значения, она создаёт полную копию, что имеет сложность O(N).

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

zip()

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

zipAll()

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

zipWith()

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

flatten()

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

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

Collection#flatten()

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

indexOf()

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

indexOf(searchValue: T): number

lastIndexOf()

Возвращает последний индекс, в котором можно найти заданное значение в коллекции, или -1, если оно отсутствует.

lastIndexOf(searchValue: T): number

findIndex()

Возвращает первый индекс в коллекции, где значение удовлетворяет предоставленной предикатной функции. В противном случае возвращается -1.

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

findLastIndex()

Возвращает последний индекс в коллекции, где значение удовлетворяет предоставленной предикатной функции. В противном случае возвращается -1.

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

find()

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

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

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

Collection#find()

findLast()

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

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

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

Collection#findLast()

Обсуждение

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

findEntry()

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

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

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

Collection#findEntry()

findLastEntry()

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

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

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

Collection#findLastEntry()

Обсуждение

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

findKey()

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

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

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

Collection#findKey()

findLastKey()

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

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

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

Collection#findLastKey()

Обсуждение

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

keyOf()

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

keyOf(searchValue: T): number | undefined

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

Collection#keyOf()

lastKeyOf()

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

lastKeyOf(searchValue: T): number | 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: number, 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: number, 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

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

concat()

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

concat<C>(...valuesOrCollections: Array<Iterable<C> | C>): Collection.Indexed<T | C>

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

Collection#concat()

map()

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

map<M>(mapper: (value: T, key: number, iter: this) => M,context?: unknown): Collection.Indexed<M>

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

Collection#map()

Пример

const { Collection } = require('immutable')
Collection.Indexed([1,2]).map(x => 10 * x)
// Seq [ 1, 2 ]

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

flatMap()

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

flatMap<M>(mapper: (value: T, key: number, iter: this) => Iterable<M>,context?: unknown): Collection.Indexed<M>

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

Collection#flatMap()

Обсуждение

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

filter()

filter<F>(predicate: (value: T, index: number, iter: this) => boolean,context?: unknown): Collection.Indexed<F>
filter(predicate: (value: T, index: number, iter: this) => unknown,context?: unknown): this

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

Collection#filter()

partition()

partition<F, C>(predicate: (this: C, value: T, index: number, iter: this) => boolean,context?: C): [Collection.Indexed<T>, Collection.Indexed<F>]
partition<C>(predicate: (this: C, value: T, index: number, iter: this) => unknown,context?: C): [this, this]

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

Collection#partition()

[Symbol.iterator]()

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

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

Collection#[Symbol.iterator]()

filterNot()

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

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

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

equals()

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

equals(other: unknown): boolean

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

Collection#equals()

Обсуждение

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

hashCode()

Вычисляет и возвращает хэшированную идентичность для этого набора.

hashCode(): number

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

Collection#hashCode()

Обсуждение

Хэш-код набора используется для определения потенциального равенства и используется при добавлении этого набора в 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

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

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

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

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

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

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

toMap(): Map<number, T>

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

Collection#toMap()

Обсуждение

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

toOrderedMap()

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

toOrderedMap(): OrderedMap<number, T>

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

Collection#toOrderedMap()

Обсуждение

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

toSet()

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

toSet(): Set<T>

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

Collection#toSet()

Обсуждение

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

toOrderedSet()

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

toOrderedSet(): OrderedSet<T>

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

Collection#toOrderedSet()

Обсуждение

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

END_OF_DOCUMENT_MARKER

toList()

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

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 в стек, отбрасывая ключи. Вызывает исключение, если значения не хешируемые.

toStack(): Stack<T>

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

Collection#toStack()

Обсуждение

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

Итераторы

keys()

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

keys(): IterableIterator<number>

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

Collection#keys()

Обсуждение

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

values()

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

values(): IterableIterator<T>

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

Collection#values()

Обсуждение

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

entries()

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

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

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

Collection#entries()

Обсуждение

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

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

keySeq()

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

keySeq(): Seq.Indexed<number>

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

Collection#keySeq()

valueSeq()

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

valueSeq(): Seq.Indexed<T>

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

Collection#valueSeq()

entrySeq()

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

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

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

Collection#entrySeq()

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

forEach()

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

forEach(sideEffect: (value: T, key: number, 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: T, key: number, 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: number, 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: number, 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: number, 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: T, key: number, iter: this) => R,initialReduction: R,context?: unknown): R
reduce<R>(reducer: (reduction: T | R, value: T, key: number, iter: this) => R): R

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

Collection#reduce()

reduceRight()

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

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

Collection#reduceRight()

every()

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

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

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

Collection#every()

some()

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

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

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

Collection#count()

countBy()

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

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

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

Collection#countBy()

Обсуждение

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

Сравнение

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/Collection.Indexed/

Spec-Zone.ru

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