Имитация классов коллекций .NET с добавлением методов, подобных LINQ, таких как Select, Where и ToList.
Build Status | Coverage Status | Npm Status | install size | JSDelivr | codebeat badge | Known Vulnerabilities | License Status |
---|---|---|---|---|---|---|---|
npm install -S luckystarry-collections
Для использования этого метода установки в проекте необходимо добавить следующий код в точку входа проекта, иначе невозможно расширить Array:
import 'luckystarry-collections'
<script src="https://cdn.jsdelivr.net/npm/luckystarry-collections/dist/index.min.js"></script>
Перечисляемый набор элементов.
Объекты списка и интерфейс списка.
Объект словаря и интерфейс словаря.
Коллекция только для чтения.
Массив.
Определяет, все ли элементы в коллекции удовлетворяют условию predicate. Если да, то возвращает true, иначе — false.
[1, 2, 3].All(x => x > 0)
// true
[1, 2, 3].All(x => x > 1)
// false
Проверяет, есть ли в коллекции элемент, удовлетворяющий условию predicate. Если есть, то возвращает true, иначе — false.
[1, 2, 3].Any(x => x > 0)
// true
[1, 2, 3].Any(x => x > 1)
// true
[1, 2, 3].Any(x => x > 3)
// false
Преобразует коллекцию объектов в форму интерфейса IEnumerable.
[1, 2, 3].AsEnumerable()
// [1, 2, 3]
Вычисляет среднее значение данных в коллекции. Если коллекция не является числовой, используется selector для отображения числового значения каждого элемента.
[1, 2, 3].Average()
// 2
[1, 2, 3].Average(x => x * 2)
// 4
Объединяет две коллекции.
[1, 2, 3].Concat([3, 4, 5])
// [1, 2, 3, 3, 4, 5]
Определяет, содержит ли коллекция элемент со значением value. Если comparer указан, сравнение выполняется с использованием этого компаратора равенства. Если элемент найден, возвращается true.
[1, 2, 3].Contains(2)
// true
Подсчитывает количество элементов в коллекции, которые удовлетворяют условию predicate, если оно указано. В противном случае подсчитывается общее количество элементов.
[1, 2, 3].Count()
// 3
[1, 2, 3].Count(x => x > 1)
// 2
Определяет, пуста ли коллекция. Если она пуста, возвращает defaultValue как новую коллекцию по умолчанию. Иначе возвращает новую коллекцию, содержащую все элементы исходной коллекции.
[1, 2, 3].DefaultIfEmpty()
// [1, 2, 3]
[].DefaultIfEmpty([1])
// [1]
Удаляет дубликаты из коллекции и позволяет использовать comparer для сравнения элементов на равенство.
[1, 2, 3].Distinct()
// [1, 2, 3]
[1, 2, 3, 3, 4].Distinct()
// [1, 2, 3, 4]
Извлекает элемент с индексом index из коллекции, начиная с нуля.
[1, 2, 3].ElementAt(1)
// 2
Извлекает элемент с индексом index из коллекции, начиная с нуля, и возвращает defaultValue, если индекс выходит за пределы коллекции.
[1, 2, 3].ElementAtOrDefault(0, 1)
// 2
[1, 2, 3].ElementAtOrDefault(0, 3)
// 0
Исключает элементы из коллекции. First (предикат?: (элемент: T) => логическое значение): T
Из коллекции извлекается элемент, удовлетворяющий условию предиката. Если предикат не используется, возвращается первый элемент коллекции.
FirstOrDefaut (значение по умолчанию: T, предикат?: (элемент: T) => логическое значение): T
Из коллекции извлекается первый элемент, который удовлетворяет условию предиката, или возвращается значение по умолчанию, если элемент не найден.
GroupBy (keySelector: (элемент: T) => TKey, elementSelector?: (элемент: T) => TElement, comparer?: IEqualityComparer): IEnumerable<IGrouping<TKey, TElement>>
Каждый элемент коллекции группируется на основе значения, выбранного keySelector. Каждый элемент преобразуется с помощью elementSelector и объединяется в группу. Для сравнения ключей можно использовать comparer.
GroupJoin (внутренний: IEnumerable, outerKeySelector: (элемент: T) => TKey, innerKeySelector: (элемент: TInner) => TKey, resultSelector?: (элемент: T, внутренние: IEnumerable) => TResult, comparer?: IEqualityComparer): IEnumerable
Объединяет элементы двух коллекций на основе общих ключей.
Intersect (второй: IEnumerable, comparer?: IEqualityComparer): IEnumerable
Возвращает элементы, которые присутствуют в обеих коллекциях. Можно использовать comparer для сравнения элементов.
Join (inner: IEnumerable, outerKeySelector: (элемент: T) => TKey, innerKeySelector: (элемент: TInner) => TKey, resultSelector?: (элемент: T, inners: TInner) => TResult, comparer?: IEqualityComparer): IEnumerable
Объединяет два набора данных на основе соответствия ключей и значений.
Last (предикат?: (элемент: T) => логическое значение): T
Возвращается последний элемент коллекции, соответствующий условию предиката.
LastOrDefault (значение по умолчанию: T, предикат?: (элемент: T) => логическое значение): T
Если элемент соответствует условию предиката, то возвращается последний элемент. В противном случае возвращается значение по умолчанию.
Max (селектор?: (элемент: T) => число): число | null
Находит максимальное значение в коллекции. Если коллекция не числовая, используется селектор для преобразования элементов в числа.
Min (селектор?: (элемент: T) => число): число | null
Определяет минимальное значение в коллекции. Если коллекция не числовая, используется селектор для преобразования элементов в числа.
Reverse (): IEnumerable
Создаёт новую коллекцию с элементами исходной коллекции в обратном порядке.
Select (селектор: (элемент: T, индекс?: число) => TРезультат): IEnumerable<TРезультат>
Преобразует каждый элемент коллекции в новый элемент с помощью селектора.
SelectMany (collectionSelector: (элемент: T, индекс?: число) => IEnumerable, resultSelector?: (элемент: T, коллекция: TCollection) => TРезультат): IEnumerable<TРезультат>
Преобразует каждый элемент в коллекцию, а затем объединяет все коллекции в одну.
SequenceEqual (второй: Iterable, comparer?: IEqualityComparer): логическое значение
Проверяет, равны ли элементы двух коллекций и находятся ли они в одинаковом порядке. 4. SequenceEqual([1, 2, 3])
false
[1, 2, 3].SequenceEqual([3, 2, 1])
false
#### Single(predicate?: (item: T) => boolean): T
Из коллекции извлекается единственный элемент, который соответствует условию *predicate*. Если условие не задано, то возвращается единственный элемент коллекции. Если в коллекции несколько элементов, удовлетворяющих условию, генерируется исключение.
```typescript
[1].Single()
// 1
[1, 2, 3].Single(x => x > 2)
// 3
SingleOrDefault(defaultValue: T, predicate?: (item: T) => boolean): T
Из коллекции извлекается единственный элемент, соответствующий условию predicate, или значение по умолчанию defaultValue, если элемент не найден. Если условие не указано, то возвращается единственный элемент коллекции. В случае нескольких элементов, соответствующих условию, генерируется исключение.
[1].SingleOrDefault(0)
// 1
[1, 2, 3].SingleOrDefault(0, x => x > 2)
// 3
[1, 2, 3].SingleOrDefault(0, x => x > 3)
// 0
Skip(count: number): IEnumerable
Извлекаются все элементы коллекции, кроме первых count элементов.
[1, 2, 3].Skip(1)
// [2, 3]
SkipWhile(predicate: (item: T, index?: number) => boolean): IEnumerable
Все элементы коллекции, которые соответствуют условию predicate, пропускаются. Остальные элементы формируют новую коллекцию.
[1, 2, 3].SkipWhile(x => x < 2)
// [2, 3]
Sum(selector?: (item: T) => number): number | null
Вычисляется сумма всех значений в коллекции. Для нечисловых коллекций используется функция selector для преобразования каждого элемента в число.
[1, 2, 3].Sum()
// 6
[1, 2, 3].Sum(x => x * 2)
// 12
Take(count: number): IEnumerable
Первые count элементов коллекции формируют новую коллекцию.
[1, 2, 3].Take(2)
// [1, 2]
TakeWhile(predicate: (item: T, index?: number) => boolean): IEnumerable
Формируется новая коллекция из элементов исходной коллекции, пока выполняется условие predicate.
[1, 2, 3].TakeWhile(x => x < 2)
// [1]
ToArray(): Array
Элементы коллекции помещаются в новый массив.
[1, 2, 3].ToArray()
// [1, 2, 3]
ToDictionary<TKey, TElement = T>(keySelector: (item: T) => TKey, elementSelector?: (item: T) => TElement, comparer?: IEqualityComparer): Dictionary
Создаётся новый словарь, где каждый элемент исходной коллекции становится ключом, а значение определяется функцией elementSelector. Если она не указана, значением будет сам элемент.
[1, 2, 3].ToDictionary(x => x)
// [{1, 1}, {2, 2}, {3, 3}]
ToList(): List
Элементы коллекции помещаются в новый список.
[1, 2, 3].ToList()
// [1, 2, 3]
Union(second: Iterable, comparer?: IEqualityComparer): IEnumerable
Объединяются две коллекции и удаляются повторяющиеся элементы. Сравнение элементов выполняется с помощью функции comparer.
[1, 2, 3].Union([3, 4, 5])
// [1, 2, 3, 4, 5]
Where(predicate: (item: T, index?: number) => boolean): IEnumerable
В новую коллекцию помещаются только те элементы исходной коллекции, которые удовлетворяют условию predicate.
[1, 2, 3].Where(x => x > 1)
// [2, 3]
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )