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
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 itmin()
Возвращает минимальное значение в этом наборе. Если какие-либо значения являются сравнительно эквивалентными, будет возвращено первое найденное.
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()
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 ithasIn()
Истинно, если результат следования по пути ключей или индексов через вложенные наборы приводит к установленному значению.
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()), но предоставлено для удобства и возможности цепочек выражений.
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()Обсуждение
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()
© 2014–present, Lee Byron and other contributors
Licensed under the 3-clause BSD License.
https://immutable-js.com/docs/v4.2.1/Collection.Indexed/