Bitbybit Docs
    Preparing search index...

    Class Lists

    Чтение, построение и перестройка простых массивов из элементов любого вида. Позиции считаются с 0: индекс 0 - это первый элемент. Большинство методов принимают параметр clone, включенный по умолчанию, который сначала глубоко копирует список, чтобы вход никогда не менялся; при отключении изменяющие методы работают со списком на месте, что быстрее для больших данных. removeAllItems всегда очищает переданный ему список.

    Index

    Constructors

    add

    • Вставляет элемент на позицию; элементы с этой позиции сдвигаются на одну вверх.

      Пример: [10, 20, 30, 40] с 99 на индексе 2 -> [10, 20, 99, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemAtIndexDto<T>

        Список, элемент, индекс и копировать ли

      Returns T[]

      Список со вставленным элементом

      const longer = bitbybit.lists.addItemAtIndex({ list: [10, 20, 30, 40], item: 99, index: 2, clone: true });
      
    • Вставляет один и тот же элемент на несколько позиций исходного списка.

      Пример: [10, 20, 30] с 99 на индексах [0, 2] -> [99, 10, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemAtIndexesDto<T>

        Список, элемент, индексы и копировать ли

      Returns T[]

      Список с элементом, вставленным по каждому индексу

      const marked = bitbybit.lists.addItemAtIndexes({ list: [10, 20, 30], item: 99, indexes: [0, 2], clone: true });
      
    • Вставляет несколько элементов, первый на первый индекс, второй на второй и так далее, все считаются по исходному списку.

      Индексы должны быть по возрастанию, и их должно быть по одному на элемент, иначе выбрасывается ошибка. Пример: [10, 20, 30] с элементами [88, 99] на индексах [1, 2] -> [10, 88, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemsAtIndexesDto<T>

        Список, элементы, по одному индексу на элемент и копировать ли

      Returns T[]

      Список со вставленными элементами

      const merged = bitbybit.lists.addItemsAtIndexes({ list: [10, 20, 30], items: [88, 99], indexes: [1, 2], clone: true });
      
    • Добавляет элемент в конец списка.

      Пример: [10, 20, 30] добавляем 40 -> [10, 20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemDto<T>

        Список, элемент и копировать ли

      Returns T[]

      Список с элементом в конце

      const longer = bitbybit.lists.addItem({ list: [10, 20, 30], item: 40, clone: true });
      
    • Добавляет элемент в начало списка.

      Пример: [10, 20, 30] добавляем в начало 5 -> [5, 10, 20, 30]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemDto<T>

        Список, элемент и копировать ли

      Returns T[]

      Список с элементом в начале

      const longer = bitbybit.lists.prependItem({ list: [10, 20, 30], item: 5, clone: true });
      
    • Добавляет элемент в начало или в конец списка, по выбору.

      Пример: [10, 20, 30] добавляем 5 в начало -> [5, 10, 20, 30]; в конец -> [10, 20, 30, 5]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemFirstLastDto<T>

        Список, элемент, позиция и копировать ли

      Returns T[]

      Список с добавленным элементом

      const longer = bitbybit.lists.addItemFirstLast({ list: [10, 20, 30], item: 5, position: Bit.Inputs.Lists.firstLastEnum.first, clone: true });
      
    • Соединяет несколько списков в один, один за другим.

      Пример: [[1, 2], [3, 4], [5, 6]] -> [1, 2, 3, 4, 5, 6]

      Type Parameters

      • T

      Parameters

      • inputs: ConcatenateDto<T>

        Соединяемые списки и копировать ли

      Returns T[]

      Один список со всеми элементами

      const all = bitbybit.lists.concatenate({ lists: [[1, 2], [3, 4], [5, 6]], clone: true });
      

    create

    • Делает новый список без ничего внутри.

      Пример: -> []

      Returns []

      Пустой список

    • Делает список, содержащий один и тот же элемент несколько раз.

      Пример: 5 три раза -> [5, 5, 5]

      Type Parameters

      • T

      Parameters

      • inputs: MultiplyItemDto<T>

        Элемент и сколько раз его повторить

      Returns T[]

      Список повторов

      const fives = bitbybit.lists.repeat({ item: 5, times: 3 });
      
    • Повторяет шаблон элементов снова и снова, пока список не достигнет заданной длины.

      Пример: [1, 2, 3] до длины 7 -> [1, 2, 3, 1, 2, 3, 1]

      Type Parameters

      • T

      Parameters

      • inputs: RepeatInPatternDto<T>

        Шаблон, длина, которую нужно достичь, и копировать ли

      Returns T[]

      Повторенный шаблон, обрезанный до длины

      const cycle = bitbybit.lists.repeatInPattern({ list: [1, 2, 3], lengthLimit: 7, clone: true });
      

    edit

    • Обращает порядок элементов.

      Пример: [1, 2, 3, 4, 5] -> [5, 4, 3, 2, 1]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        Список и копировать ли его сначала

      Returns T[]

      Список в обратном порядке

    • Расставляет элементы в случайном порядке, разном при каждом вызове.

      Пример: [1, 2, 3, 4, 5] -> возможно [3, 1, 5, 2, 4]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        Список и копировать ли его сначала

      Returns T[]

      Перемешанный список

    • Переворачивает список списков на бок: строки становятся столбцами, а столбцы - строками.

      Все внутренние списки должны быть одной длины. Пример: [[0, 1, 2], [3, 4, 5]] -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T[]>

        Список списков и копировать ли его сначала

      Returns T[][]

      Транспонированный список списков

      const columns = bitbybit.lists.flipLists({ list: [[0, 1, 2], [3, 4, 5]], clone: true });
      
    • Разбивает список на группы по n элементов.

      Элементы, оставшиеся в конце, отбрасываются, если не включен keepRemainder, который добавляет их как более короткую последнюю группу. Пример: [0, 1, 2, 3, 4, 5, 6, 7, 8] группами по 3 -> [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

      Type Parameters

      • T

      Parameters

      • inputs: GroupListDto<T>

        Список, размер группы и оставлять ли неполную последнюю группу

      Returns T[][]

      Группы, по порядку

      const pairs = bitbybit.lists.groupNth({ list: [0, 1, 2, 3, 4], nrElements: 2, keepRemainder: true });
      

    get

    • Читает элемент на позиции в списке, считая с 0.

      Индекс за пределами списка выбрасывает ошибку. Пример: [10, 20, 30, 40] с индексом 2 -> 30

      Type Parameters

      • T

      Parameters

      • inputs: ListItemDto<T>

        Список, индекс и копировать ли элемент

      Returns T

      Элемент с этим индексом

      const third = bitbybit.lists.getItem({ list: [10, 20, 30, 40], index: 2, clone: true });
      
    • Читает первый элемент списка.

      Пример: [10, 20, 30, 40] -> 10

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        Список и копировать ли элемент

      Returns T

      Первый элемент

    • Читает последний элемент списка.

      Пример: [10, 20, 30, 40] -> 40

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        Список и копировать ли элемент

      Returns T

      Последний элемент

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

      Пример: [1, 2, 3, 4, 5] с порогом 0.5 -> возможно [1, 3, 5]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        Список, вероятность оставить элемент от 0 до 1 и копировать ли

      Returns T[]

      Оставленные элементы, в исходном порядке

      const some = bitbybit.lists.randomGetThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Вырезает элементы от начального индекса до конечного, не включая его.

      Пример: [10, 20, 30, 40, 50] от 1 до 4 -> [20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: SubListDto<T>

        Список, начальный и конечный индексы и копировать ли

      Returns T[]

      Элементы в этом диапазоне

      const middle = bitbybit.lists.getSubList({ list: [10, 20, 30, 40, 50], indexStart: 1, indexEnd: 4, clone: true });
      
    • Сохраняет каждый n-й элемент, начиная со смещения.

      Пример: [0, 1, 2, 3, 4, 5, 6, 7, 8] с nth 3 и смещением 0 -> [0, 3, 6]; с nth 2 и смещением 1 -> [1, 3, 5, 7]

      Type Parameters

      • T

      Parameters

      • inputs: GetNthItemDto<T>

        Список, шаг, смещение начала и копировать ли

      Returns T[]

      Каждый n-й элемент, по порядку

      const everyThird = bitbybit.lists.getNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Сохраняет элементы там, где повторяющийся шаблон true/false говорит true, и отбрасывает остальные.

      Шаблон начинается заново, когда заканчивается. Пример: [0, 1, 2, 3, 4, 5] с шаблоном [true, true, false] -> [0, 1, 3, 4]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Элементы, оставленные шаблоном, по порядку

      const kept = bitbybit.lists.getByPattern({ list: [0, 1, 2, 3, 4, 5], pattern: [true, true, false] });
      
    • Перегруппировывает вложенные списки по позиции: первые элементы каждого списка идут вместе, затем вторые элементы и так далее.

      level говорит, сколько уровней вложенности сначала развернуть внутри каждого списка; 0 перегруппировывает их как есть. Пример: [[0, 1, 2], [3, 4, 5]] на уровне 0 -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      • inputs: MergeElementsOfLists<T[]>

        Списки и глубина, на которой перегруппировать

      Returns T[]

      Перегруппированные списки

      const columns = bitbybit.lists.mergeElementsOfLists({ lists: [[0, 1, 2], [3, 4, 5]], level: 0 });
      
    • Измеряет самый длинный список среди нескольких.

      Пример: [[1, 2], [3, 4, 5, 6], [7]] -> 4

      Type Parameters

      • T

      Parameters

      Returns number

      Длина самого длинного из них

      const longest = bitbybit.lists.getLongestListLength({ lists: [[1, 2], [3, 4, 5, 6], [7]] });
      
    • Сообщает, есть ли элемент в списке.

      Элементы сравниваются по идентичности, так что объект находится, только если в списке тот же самый объект. Пример: [10, 20, 30, 40] содержит 30 -> true, содержит 50 -> false

      Type Parameters

      • T

      Parameters

      • inputs: IncludesDto<T>

        Список и искомый элемент

      Returns boolean

      true, если элемент есть в списке

      const found = bitbybit.lists.includes({ list: [10, 20, 30, 40], item: 30 });
      
    • Находит позицию первого вхождения элемента, или -1, когда его нет в списке.

      Пример: [10, 20, 30, 20, 40] ищем 20 -> 1, ищем 50 -> -1

      Type Parameters

      • T

      Parameters

      • inputs: IncludesDto<T>

        Список и искомый элемент

      Returns number

      Индекс, начиная с 0, или -1

      const where = bitbybit.lists.findIndex({ list: [10, 20, 30, 20, 40], item: 20 });
      
    • Измеряет, насколько глубоко списки вложены внутри списка.

      Пример: [1, 2, 3] -> 1, [[1, 2], [3, 4]] -> 2, [[[1]]] -> 3

      Parameters

      Returns number

      Число уровней вложенности

    • Считает элементы в списке.

      Пример: [10, 20, 30, 40, 50] -> 5, [] -> 0

      Type Parameters

      • T

      Parameters

      Returns number

      Число элементов

    remove

    • Удаляет элемент на позиции.

      Пример: [10, 20, 30, 40, 50] удаляем индекс 2 -> [10, 20, 40, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Список без этого элемента

      const shorter = bitbybit.lists.removeItemAtIndex({ list: [10, 20, 30, 40, 50], index: 2, clone: true });
      
    • Удаляет первый элемент.

      Пример: [10, 20, 30, 40] -> [20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        Список и копировать ли его сначала

      Returns T[]

      Список без первого элемента

    • Удаляет последний элемент.

      Пример: [10, 20, 30, 40] -> [10, 20, 30]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T>

        Список и копировать ли его сначала

      Returns T[]

      Список без последнего элемента

    • Удаляет элемент, считая с конца: индекс 0 - последний элемент, 1 - предпоследний.

      Пример: [10, 20, 30, 40, 50] удаляем индекс 1 с конца -> [10, 20, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Список без этого элемента

      const shorter = bitbybit.lists.removeItemAtIndexFromEnd({ list: [10, 20, 30, 40, 50], index: 1, clone: true });
      
    • Удаляет элементы на нескольких позициях, все считаются по исходному списку.

      Пример: [10, 20, 30, 40, 50] удаляем индексы [1, 3] -> [10, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Список без этих элементов

      const kept = bitbybit.lists.removeItemsAtIndexes({ list: [10, 20, 30, 40, 50], indexes: [1, 3], clone: true });
      
    • Опустошает заданный список на месте: тот же массив возвращается без элементов.

      Пример: [10, 20, 30, 40] -> []

      Type Parameters

      • T

      Parameters

      • inputs: ListDto<T>

        Список, который нужно очистить

      Returns T[]

      Тот же список, теперь пустой

    • Удаляет каждый n-й элемент, начиная со смещения.

      Пример: [0, 1, 2, 3, 4, 5, 6, 7, 8] с nth 3 и смещением 0 -> [1, 2, 4, 5, 7, 8]

      Type Parameters

      • T

      Parameters

      • inputs: RemoveNthItemDto<T>

        Список, шаг, смещение начала и копировать ли

      Returns T[]

      Список без каждого n-го элемента

      const thinned = bitbybit.lists.removeNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Отбрасывает каждый элемент списка с заданной вероятностью и сохраняет остальные, так что результат отличается при каждом вызове.

      Пример: [1, 2, 3, 4, 5] с порогом 0.5 -> возможно [2, 4]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        Список, вероятность удалить элемент от 0 до 1 и копировать ли

      Returns T[]

      Уцелевшие элементы, в исходном порядке

      const some = bitbybit.lists.randomRemoveThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Удаляет повторяющиеся числа, сохраняя первое вхождение каждого.

      Пример: [1, 2, 3, 2, 4, 3, 5] -> [1, 2, 3, 4, 5]

      Parameters

      Returns number[]

      Числа без повторов, в исходном порядке

    • Удаляет числа, находящиеся в пределах допуска от уже сохраненного, так что значения, отличающиеся только шумом плавающей точки, считаются одинаковыми.

      Пример: [1.0, 1.001, 2.0, 2.002, 3.0] с допуском 0.01 -> [1.0, 2.0, 3.0]

      Parameters

      Returns number[]

      Числа без близких повторов, в исходном порядке

      const distinct = bitbybit.lists.removeDuplicateNumbersTolerance({ list: [1.0, 1.001, 2.0], tolerance: 0.01, clone: true });
      
    • Удаляет повторяющиеся элементы любого вида, сохраняя первое вхождение каждого.

      Элементы сравниваются по идентичности, так что два одинаково выглядящих объекта оба остаются. Пример: ['a', 'b', 'c', 'a', 'd', 'b'] -> ['a', 'b', 'c', 'd']

      Type Parameters

      • T

      Parameters

      Returns T[]

      Список без повторов, в исходном порядке

    sorting

    • Сортирует числа от наименьшего к наибольшему или от наибольшего к наименьшему.

      Пример: [5, 2, 8, 1, 9] по возрастанию -> [1, 2, 5, 8, 9]; по убыванию -> [9, 8, 5, 2, 1]

      Parameters

      • inputs: SortDto<number>

        Числа, направление и копировать ли

      Returns number[]

      Отсортированные числа

      const sorted = bitbybit.lists.sortNumber({ list: [5, 2, 8, 1, 9], orderAsc: true, clone: true });
      
    • Сортирует тексты по алфавиту, от A до Z или от Z до A.

      Пример: ['dog', 'apple', 'cat'] по возрастанию -> ['apple', 'cat', 'dog']

      Parameters

      • inputs: SortDto<string>

        Тексты, направление и копировать ли

      Returns string[]

      Отсортированные тексты

      const sorted = bitbybit.lists.sortTexts({ list: ["dog", "apple", "cat"], orderAsc: true, clone: true });
      
    • Сортирует объекты по числу, хранящемуся в одном из их свойств.

      Пример: [{age: 30}, {age: 20}, {age: 25}] по 'age' по возрастанию -> [{age: 20}, {age: 25}, {age: 30}]

      Parameters

      • inputs: SortJsonDto<any>

        Объекты, свойство для сортировки, направление и копировать ли

      Returns any[]

      Отсортированные объекты

      const byAge = bitbybit.lists.sortByPropValue({ list: [{ age: 30 }, { age: 20 }], property: "age", orderAsc: true, clone: true });
      

    transform

    • Сплетает несколько списков в один, беря по очереди первый элемент каждого, затем второй каждого и так далее.

      Более короткий список просто выбывает, когда исчерпывается. Пустой список списков выбрасывает ошибку. Пример: [[0, 1, 2], [3, 4, 5]] -> [0, 3, 1, 4, 2, 5]

      Type Parameters

      • T

      Parameters

      • inputs: InterleaveDto<T>

        Списки для переплетения и копировать ли

      Returns T[]

      Один список с чередующимися элементами

      const woven = bitbybit.lists.interleave({ lists: [[0, 1, 2], [3, 4, 5]], clone: true });