Bitbybit Docs
    Preparing search index...

    Class Lists

    Ler, construir e remodelar arrays simples de qualquer tipo de item. As posições começam em 0: o índice 0 é o primeiro item. A maioria dos métodos recebe uma opção clone, ativa por predefinição, que copia em profundidade a lista primeiro para que a entrada nunca seja alterada; desativada, os métodos modificadores trabalham na lista no lugar, o que é mais rápido para dados grandes. removeAllItems esvazia sempre a lista que recebe.

    Index

    Constructors

    add

    • Insere um item numa posição; os itens a partir dessa posição avançam uma posição.

      Exemplo: [10, 20, 30, 40] com 99 no índice 2 -> [10, 20, 99, 30, 40]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista com o item inserido

      const longer = bitbybit.lists.addItemAtIndex({ list: [10, 20, 30, 40], item: 99, index: 2, clone: true });
      
    • Insere o mesmo item em várias posições da lista original.

      Exemplo: [10, 20, 30] com 99 nos índices [0, 2] -> [99, 10, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista com o item inserido em cada índice

      const marked = bitbybit.lists.addItemAtIndexes({ list: [10, 20, 30], item: 99, indexes: [0, 2], clone: true });
      
    • Insere vários itens, o primeiro no primeiro índice, o segundo no segundo, e assim por diante, todos contados na lista original.

      Os índices têm de estar por ordem crescente e tem de haver um por item, ou é lançado um erro. Exemplo: [10, 20, 30] com itens [88, 99] nos índices [1, 2] -> [10, 88, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista com os itens inseridos

      const merged = bitbybit.lists.addItemsAtIndexes({ list: [10, 20, 30], items: [88, 99], indexes: [1, 2], clone: true });
      
    • Adiciona um item no fim da lista.

      Exemplo: [10, 20, 30] a adicionar 40 -> [10, 20, 30, 40]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista com o item no seu fim

      const longer = bitbybit.lists.addItem({ list: [10, 20, 30], item: 40, clone: true });
      
    • Adiciona um item no início da lista.

      Exemplo: [10, 20, 30] a adicionar 5 no início -> [5, 10, 20, 30]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista com o item no seu início

      const longer = bitbybit.lists.prependItem({ list: [10, 20, 30], item: 5, clone: true });
      
    • Adiciona um item no início ou no fim da lista, conforme escolhido.

      Exemplo: [10, 20, 30] a adicionar 5 primeiro -> [5, 10, 20, 30]; último -> [10, 20, 30, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista com o item adicionado

      const longer = bitbybit.lists.addItemFirstLast({ list: [10, 20, 30], item: 5, position: Bit.Inputs.Lists.firstLastEnum.first, clone: true });
      
    • Une várias listas numa só, de ponta a ponta.

      Exemplo: [[1, 2], [3, 4], [5, 6]] -> [1, 2, 3, 4, 5, 6]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Uma lista com todos os itens

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

    create

    • Cria uma nova lista sem nada dentro.

      Exemplo: -> []

      Returns []

      Uma lista vazia

    • Cria uma lista que contém o mesmo item um número de vezes.

      Exemplo: 5 três vezes -> [5, 5, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista de repetições

      const fives = bitbybit.lists.repeat({ item: 5, times: 3 });
      
    • Repete um padrão de itens vezes sem conta até a lista atingir um dado comprimento.

      Exemplo: [1, 2, 3] até ao comprimento 7 -> [1, 2, 3, 1, 2, 3, 1]

      Type Parameters

      • T

      Parameters

      Returns T[]

      O padrão repetido, cortado ao comprimento

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

    edit

    • Inverte a ordem dos itens.

      Exemplo: [1, 2, 3, 4, 5] -> [5, 4, 3, 2, 1]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista invertida

    • Põe os itens numa ordem aleatória, diferente a cada chamada.

      Exemplo: [1, 2, 3, 4, 5] -> talvez [3, 1, 5, 2, 4]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista baralhada

    • Vira uma lista de listas de lado: as filas tornam-se colunas e as colunas tornam-se filas.

      Todas as listas interiores têm de ter o mesmo comprimento. Exemplo: [[0, 1, 2], [3, 4, 5]] -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T[]>

        A lista de listas e se deve copiá-la primeiro

      Returns T[][]

      A lista de listas transposta

      const columns = bitbybit.lists.flipLists({ list: [[0, 1, 2], [3, 4, 5]], clone: true });
      
    • Divide a lista em grupos de n itens.

      Os itens que sobram no fim são descartados a menos que keepRemainder esteja ligado, o que os adiciona como um último grupo mais curto. Exemplo: [0, 1, 2, 3, 4, 5, 6, 7, 8] em grupos de 3 -> [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

      Type Parameters

      • T

      Parameters

      • inputs: GroupListDto<T>

        A lista, o tamanho do grupo e se deve manter um último grupo parcial

      Returns T[][]

      Os grupos, por ordem

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

    get

    • Lê o item numa posição da lista, a contar de 0.

      Um índice fora da lista lança um erro. Exemplo: [10, 20, 30, 40] no índice 2 -> 30

      Type Parameters

      • T

      Parameters

      • inputs: ListItemDto<T>

        A lista, o índice e se deve copiar o item

      Returns T

      O item nesse índice

      const third = bitbybit.lists.getItem({ list: [10, 20, 30, 40], index: 2, clone: true });
      
    • Lê o primeiro item da lista.

      Exemplo: [10, 20, 30, 40] -> 10

      Type Parameters

      • T

      Parameters

      Returns T

      O primeiro item

    • Lê o último item da lista.

      Exemplo: [10, 20, 30, 40] -> 40

      Type Parameters

      • T

      Parameters

      Returns T

      O último item

    • Mantém cada item da lista com uma dada probabilidade e descarta o resto, de modo que o resultado difere a cada chamada.

      Exemplo: [1, 2, 3, 4, 5] com limiar 0.5 -> talvez [1, 3, 5]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        A lista, a probabilidade de manter um item de 0 a 1, e se deve copiar

      Returns T[]

      Os itens que foram mantidos, pela sua ordem original

      const some = bitbybit.lists.randomGetThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Recorta os itens de um índice inicial até, mas não incluindo, um índice final.

      Exemplo: [10, 20, 30, 40, 50] de 1 a 4 -> [20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: SubListDto<T>

        A lista, os índices de início e fim, e se deve copiar

      Returns T[]

      Os itens nesse intervalo

      const middle = bitbybit.lists.getSubList({ list: [10, 20, 30, 40, 50], indexStart: 1, indexEnd: 4, clone: true });
      
    • Mantém cada enésimo item, a partir de um desvio.

      Exemplo: [0, 1, 2, 3, 4, 5, 6, 7, 8] com nth 3 e desvio 0 -> [0, 3, 6]; com nth 2 e desvio 1 -> [1, 3, 5, 7]

      Type Parameters

      • T

      Parameters

      • inputs: GetNthItemDto<T>

        A lista, o passo, o deslocamento a partir do qual começar, e se deve copiar

      Returns T[]

      Cada n-ésimo item, por ordem

      const everyThird = bitbybit.lists.getNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Mantém os itens onde um padrão repetido de verdadeiro/falso diz verdadeiro e descarta os outros.

      O padrão recomeça quando se esgota. Exemplo: [0, 1, 2, 3, 4, 5] com padrão [true, true, false] -> [0, 1, 3, 4]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Os itens que o padrão manteve, por ordem

      const kept = bitbybit.lists.getByPattern({ list: [0, 1, 2, 3, 4, 5], pattern: [true, true, false] });
      
    • Reagrupa listas aninhadas por posição: os primeiros itens de cada lista ficam juntos, depois os segundos itens, e assim por diante.

      level diz quantos níveis de aninhamento achatar primeiro dentro de cada lista; 0 reagrupa-as tal como estão. Exemplo: [[0, 1, 2], [3, 4, 5]] no nível 0 -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      Returns T[]

      As listas reagrupadas

      const columns = bitbybit.lists.mergeElementsOfLists({ lists: [[0, 1, 2], [3, 4, 5]], level: 0 });
      
    • Mede a lista mais longa entre várias.

      Exemplo: [[1, 2], [3, 4, 5, 6], [7]] -> 4

      Type Parameters

      • T

      Parameters

      Returns number

      O comprimento da mais longa

      const longest = bitbybit.lists.getLongestListLength({ lists: [[1, 2], [3, 4, 5, 6], [7]] });
      
    • Indica se um item está na lista.

      Os itens são comparados por identidade, por isso um objeto só é encontrado se exatamente o mesmo objeto estiver na lista. Exemplo: [10, 20, 30, 40] inclui 30 -> true, inclui 50 -> false

      Type Parameters

      • T

      Parameters

      Returns boolean

      True quando o item está na lista

      const found = bitbybit.lists.includes({ list: [10, 20, 30, 40], item: 30 });
      
    • Encontra a posição da primeira ocorrência de um item, ou -1 quando não está na lista.

      Exemplo: [10, 20, 30, 20, 40] a procurar 20 -> 1, a procurar 50 -> -1

      Type Parameters

      • T

      Parameters

      Returns number

      O índice a começar em 0, ou -1

      const where = bitbybit.lists.findIndex({ list: [10, 20, 30, 20, 40], item: 20 });
      
    • Mede quão profundamente as listas estão aninhadas dentro da lista.

      Exemplo: [1, 2, 3] -> 1, [[1, 2], [3, 4]] -> 2, [[[1]]] -> 3

      Parameters

      Returns number

      O número de níveis de aninhamento

    • Conta os itens da lista.

      Exemplo: [10, 20, 30, 40, 50] -> 5, [] -> 0

      Type Parameters

      • T

      Parameters

      Returns number

      O número de itens

    remove

    • Remove o item numa posição.

      Exemplo: [10, 20, 30, 40, 50] a remover o índice 2 -> [10, 20, 40, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista sem esse item

      const shorter = bitbybit.lists.removeItemAtIndex({ list: [10, 20, 30, 40, 50], index: 2, clone: true });
      
    • Remove o primeiro item.

      Exemplo: [10, 20, 30, 40] -> [20, 30, 40]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista sem o seu primeiro item

    • Remove o último item.

      Exemplo: [10, 20, 30, 40] -> [10, 20, 30]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista sem o seu último item

    • Remove um item contado a partir do fim: o índice 0 é o último item, 1 o anterior a ele.

      Exemplo: [10, 20, 30, 40, 50] a remover o índice 1 a partir do fim -> [10, 20, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista sem esse item

      const shorter = bitbybit.lists.removeItemAtIndexFromEnd({ list: [10, 20, 30, 40, 50], index: 1, clone: true });
      
    • Remove os itens em várias posições, todas contadas na lista original.

      Exemplo: [10, 20, 30, 40, 50] a remover os índices [1, 3] -> [10, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista sem esses itens

      const kept = bitbybit.lists.removeItemsAtIndexes({ list: [10, 20, 30, 40, 50], indexes: [1, 3], clone: true });
      
    • Esvazia a lista que recebe, no lugar: o mesmo array volta sem itens.

      Exemplo: [10, 20, 30, 40] -> []

      Type Parameters

      • T

      Parameters

      Returns T[]

      A mesma lista, agora vazia

    • Remove cada enésimo item, a partir de um desvio.

      Exemplo: [0, 1, 2, 3, 4, 5, 6, 7, 8] com nth 3 e desvio 0 -> [1, 2, 4, 5, 7, 8]

      Type Parameters

      • T

      Parameters

      • inputs: RemoveNthItemDto<T>

        A lista, o passo, o deslocamento a partir do qual começar e se deve copiar

      Returns T[]

      A lista sem cada n-ésimo item

      const thinned = bitbybit.lists.removeNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Descarta cada item da lista com uma dada probabilidade e mantém o resto, de modo que o resultado difere a cada chamada.

      Exemplo: [1, 2, 3, 4, 5] com limiar 0.5 -> talvez [2, 4]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        A lista, a probabilidade de descartar um item de 0 a 1, e se deve copiar

      Returns T[]

      Os itens que sobreviveram, pela sua ordem original

      const some = bitbybit.lists.randomRemoveThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Remove números repetidos, mantendo a primeira ocorrência de cada um.

      Exemplo: [1, 2, 3, 2, 4, 3, 5] -> [1, 2, 3, 4, 5]

      Parameters

      Returns number[]

      Os números sem repetições, pela sua ordem original

    • Remove números que estão dentro de uma tolerância de um já mantido, de modo que valores que diferem só por ruído de vírgula flutuante contam como o mesmo.

      Exemplo: [1.0, 1.001, 2.0, 2.002, 3.0] com tolerância 0.01 -> [1.0, 2.0, 3.0]

      Parameters

      Returns number[]

      Os números sem quase-repetições, pela sua ordem original

      const distinct = bitbybit.lists.removeDuplicateNumbersTolerance({ list: [1.0, 1.001, 2.0], tolerance: 0.01, clone: true });
      
    • Remove itens repetidos de qualquer tipo, mantendo a primeira ocorrência de cada um.

      Os itens são comparados por identidade, por isso dois objetos de aspeto igual ficam ambos. Exemplo: ['a', 'b', 'c', 'a', 'd', 'b'] -> ['a', 'b', 'c', 'd']

      Type Parameters

      • T

      Parameters

      Returns T[]

      A lista sem repetições, pela sua ordem original

    sorting

    • Ordena números do mais baixo para o mais alto, ou do mais alto para o mais baixo.

      Exemplo: [5, 2, 8, 1, 9] ascendente -> [1, 2, 5, 8, 9]; descendente -> [9, 8, 5, 2, 1]

      Parameters

      • inputs: SortDto<number>

        Os números, a direção e se deve copiar

      Returns number[]

      Os números ordenados

      const sorted = bitbybit.lists.sortNumber({ list: [5, 2, 8, 1, 9], orderAsc: true, clone: true });
      
    • Ordena textos alfabeticamente, de A a Z ou de Z a A.

      Exemplo: ['dog', 'apple', 'cat'] ascendente -> ['apple', 'cat', 'dog']

      Parameters

      • inputs: SortDto<string>

        Os textos, a direção e se deve copiar

      Returns string[]

      Os textos ordenados

      const sorted = bitbybit.lists.sortTexts({ list: ["dog", "apple", "cat"], orderAsc: true, clone: true });
      
    • Ordena objetos pelo número guardado numa das suas propriedades.

      Exemplo: [{age: 30}, {age: 20}, {age: 25}] por 'age' ascendente -> [{age: 20}, {age: 25}, {age: 30}]

      Parameters

      • inputs: SortJsonDto<any>

        Os objetos, a propriedade pela qual ordenar, a direção e se deve copiar

      Returns any[]

      Os objetos ordenados

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

    transform

    • Entrelaça várias listas numa só tomando o primeiro item de cada uma à vez, depois o segundo de cada uma, e assim por diante.

      Uma lista mais curta simplesmente sai assim que se esgota. Uma lista de listas vazia lança um erro. Exemplo: [[0, 1, 2], [3, 4, 5]] -> [0, 3, 1, 4, 2, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Uma lista com os itens alternados

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