Bitbybit Docs
    Preparing search index...

    Class Lists

    Leer, construir y remodelar listas simples de cualquier tipo de elemento. Las posiciones empiezan en 0: el índice 0 es el primer elemento. La mayoría de los métodos toman una opción clone, activada por defecto, que copia en profundidad la lista primero para que la entrada nunca cambie; desactivada, los métodos modificadores trabajan sobre la lista en su sitio, lo que es más rápido para datos grandes. removeAllItems siempre vacía la lista que se le da.

    Index

    Constructors

    add

    • Inserta un elemento en una posición; los elementos desde esa posición en adelante se desplazan una posición.

      Ejemplo: [10, 20, 30, 40] con 99 en el índice 2 -> [10, 20, 99, 30, 40]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista con el elemento insertado

      const longer = bitbybit.lists.addItemAtIndex({ list: [10, 20, 30, 40], item: 99, index: 2, clone: true });
      
    • Inserta el mismo elemento en varias posiciones de la lista original.

      Ejemplo: [10, 20, 30] con 99 en los índices [0, 2] -> [99, 10, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista con el elemento insertado en cada índice

      const marked = bitbybit.lists.addItemAtIndexes({ list: [10, 20, 30], item: 99, indexes: [0, 2], clone: true });
      
    • Inserta varios elementos, el primero en el primer índice, el segundo en el segundo, y así sucesivamente, todos contados sobre la lista original.

      Los índices deben estar en orden ascendente y debe haber uno por elemento, o se lanza un error. Ejemplo: [10, 20, 30] con elementos [88, 99] en los índices [1, 2] -> [10, 88, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista con los elementos insertados

      const merged = bitbybit.lists.addItemsAtIndexes({ list: [10, 20, 30], items: [88, 99], indexes: [1, 2], clone: true });
      
    • Añade un elemento al final de la lista.

      Ejemplo: [10, 20, 30] añadiendo 40 -> [10, 20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemDto<T>

        La lista, el elemento y si copiar

      Returns T[]

      La lista con el elemento al final

      const longer = bitbybit.lists.addItem({ list: [10, 20, 30], item: 40, clone: true });
      
    • Añade un elemento al principio de la lista.

      Ejemplo: [10, 20, 30] anteponiendo 5 -> [5, 10, 20, 30]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemDto<T>

        La lista, el elemento y si copiar

      Returns T[]

      La lista con el elemento al principio

      const longer = bitbybit.lists.prependItem({ list: [10, 20, 30], item: 5, clone: true });
      
    • Añade un elemento al principio o al final de la lista, según se elija.

      Ejemplo: [10, 20, 30] añadiendo 5 al principio -> [5, 10, 20, 30]; al final -> [10, 20, 30, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista con el elemento añadido

      const longer = bitbybit.lists.addItemFirstLast({ list: [10, 20, 30], item: 5, position: Bit.Inputs.Lists.firstLastEnum.first, clone: true });
      
    • Une varias listas en una, una tras otra.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      Una lista con todos los elementos

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

    create

    • Hace una lista nueva sin nada dentro.

      Ejemplo: -> []

      Returns []

      Una lista vacía

    • Hace una lista que contiene el mismo elemento un número de veces.

      Ejemplo: 5 tres veces -> [5, 5, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista de repeticiones

      const fives = bitbybit.lists.repeat({ item: 5, times: 3 });
      
    • Repite un patrón de elementos una y otra vez hasta que la lista alcanza una longitud dada.

      Ejemplo: [1, 2, 3] hasta la longitud 7 -> [1, 2, 3, 1, 2, 3, 1]

      Type Parameters

      • T

      Parameters

      Returns T[]

      El patrón repetido, recortado a la longitud

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

    edit

    • Invierte el orden de los elementos.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista invertida

    • Pone los elementos en un orden aleatorio, distinto en cada llamada.

      Ejemplo: [1, 2, 3, 4, 5] -> quizá [3, 1, 5, 2, 4]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista barajada

    • Pone de lado una lista de listas: las filas se convierten en columnas y las columnas en filas.

      Todas las listas interiores deben tener la misma longitud. Ejemplo: [[0, 1, 2], [3, 4, 5]] -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T[]>

        La lista de listas y si copiarla primero

      Returns T[][]

      La lista de listas transpuesta

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

      Los elementos que sobran al final se descartan salvo que keepRemainder esté activado, lo que los añade como un último grupo más corto. Ejemplo: [0, 1, 2, 3, 4, 5, 6, 7, 8] en grupos de 3 -> [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

      Type Parameters

      • T

      Parameters

      • inputs: GroupListDto<T>

        La lista, el tamaño de grupo y si conservar un último grupo parcial

      Returns T[][]

      Los grupos, en orden

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

    get

    • Lee el elemento en una posición de la lista, contando desde 0.

      Un índice fuera de la lista lanza un error. Ejemplo: [10, 20, 30, 40] en el índice 2 -> 30

      Type Parameters

      • T

      Parameters

      • inputs: ListItemDto<T>

        La lista, el índice y si copiar el elemento

      Returns T

      El elemento en ese índice

      const third = bitbybit.lists.getItem({ list: [10, 20, 30, 40], index: 2, clone: true });
      
    • Lee el primer elemento de la lista.

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

      Type Parameters

      • T

      Parameters

      Returns T

      El primer elemento

    • Lee el último elemento de la lista.

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

      Type Parameters

      • T

      Parameters

      Returns T

      El último elemento

    • Conserva cada elemento de la lista con una probabilidad dada y descarta el resto, de modo que el resultado difiere en cada llamada.

      Ejemplo: [1, 2, 3, 4, 5] con umbral 0.5 -> quizá [1, 3, 5]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        La lista, la probabilidad de conservar un elemento de 0 a 1, y si copiar

      Returns T[]

      Los elementos que se conservaron, en su orden original

      const some = bitbybit.lists.randomGetThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Recorta los elementos desde un índice inicial hasta un índice final, sin incluirlo.

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

      Type Parameters

      • T

      Parameters

      • inputs: SubListDto<T>

        La lista, los índices inicial y final, y si copiar

      Returns T[]

      Los elementos de ese rango

      const middle = bitbybit.lists.getSubList({ list: [10, 20, 30, 40, 50], indexStart: 1, indexEnd: 4, clone: true });
      
    • Conserva cada enésimo elemento, empezando desde un desplazamiento.

      Ejemplo: [0, 1, 2, 3, 4, 5, 6, 7, 8] con nth 3 y desplazamiento 0 -> [0, 3, 6]; con nth 2 y desplazamiento 1 -> [1, 3, 5, 7]

      Type Parameters

      • T

      Parameters

      • inputs: GetNthItemDto<T>

        La lista, el paso, el desplazamiento desde el que empezar, y si copiar

      Returns T[]

      Cada enésimo elemento, en orden

      const everyThird = bitbybit.lists.getNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Conserva los elementos donde un patrón repetido de true/false dice true y descarta los demás.

      El patrón vuelve a empezar cuando se agota. Ejemplo: [0, 1, 2, 3, 4, 5] con patrón [true, true, false] -> [0, 1, 3, 4]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Los elementos que el patrón conservó, en orden

      const kept = bitbybit.lists.getByPattern({ list: [0, 1, 2, 3, 4, 5], pattern: [true, true, false] });
      
    • Reagrupa listas anidadas por posición: los primeros elementos de cada lista van juntos, luego los segundos elementos, y así sucesivamente.

      level dice cuántos niveles de anidamiento aplanar primero dentro de cada lista; 0 las reagrupa tal como están. Ejemplo: [[0, 1, 2], [3, 4, 5]] en el nivel 0 -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Las listas reagrupadas

      const columns = bitbybit.lists.mergeElementsOfLists({ lists: [[0, 1, 2], [3, 4, 5]], level: 0 });
      
    • Mide la lista más larga de entre varias.

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

      Type Parameters

      • T

      Parameters

      Returns number

      La longitud de la más larga

      const longest = bitbybit.lists.getLongestListLength({ lists: [[1, 2], [3, 4, 5, 6], [7]] });
      
    • Indica si un elemento está en la lista.

      Los elementos se comparan por identidad, así que un objeto se encuentra solo si exactamente el mismo objeto está en la lista. Ejemplo: [10, 20, 30, 40] incluye 30 -> true, incluye 50 -> false

      Type Parameters

      • T

      Parameters

      Returns boolean

      True cuando el elemento está en la lista

      const found = bitbybit.lists.includes({ list: [10, 20, 30, 40], item: 30 });
      
    • Encuentra la posición de la primera aparición de un elemento, o -1 cuando no está en la lista.

      Ejemplo: [10, 20, 30, 20, 40] buscando 20 -> 1, buscando 50 -> -1

      Type Parameters

      • T

      Parameters

      Returns number

      El índice, empezando en 0, o -1

      const where = bitbybit.lists.findIndex({ list: [10, 20, 30, 20, 40], item: 20 });
      
    • Mide cuán profundamente hay listas anidadas dentro de la lista.

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

      Parameters

      Returns number

      El número de niveles de anidamiento

    • Cuenta los elementos de la lista.

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

      Type Parameters

      • T

      Parameters

      Returns number

      El número de elementos

    remove

    • Elimina el elemento de una posición.

      Ejemplo: [10, 20, 30, 40, 50] eliminando el índice 2 -> [10, 20, 40, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista sin ese elemento

      const shorter = bitbybit.lists.removeItemAtIndex({ list: [10, 20, 30, 40, 50], index: 2, clone: true });
      
    • Elimina el primer elemento.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista sin su primer elemento

    • Elimina el último elemento.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista sin su último elemento

    • Elimina un elemento contado desde el final: el índice 0 es el último elemento, 1 el anterior.

      Ejemplo: [10, 20, 30, 40, 50] eliminando el índice 1 desde el final -> [10, 20, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista sin ese elemento

      const shorter = bitbybit.lists.removeItemAtIndexFromEnd({ list: [10, 20, 30, 40, 50], index: 1, clone: true });
      
    • Elimina los elementos de varias posiciones, todas contadas sobre la lista original.

      Ejemplo: [10, 20, 30, 40, 50] eliminando los índices [1, 3] -> [10, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista sin esos elementos

      const kept = bitbybit.lists.removeItemsAtIndexes({ list: [10, 20, 30, 40, 50], indexes: [1, 3], clone: true });
      
    • Vacía la lista que se le da, en el sitio: vuelve el mismo array sin ningún elemento.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      La misma lista, ahora vacía

    • Elimina cada enésimo elemento, empezando desde un desplazamiento.

      Ejemplo: [0, 1, 2, 3, 4, 5, 6, 7, 8] con nth 3 y desplazamiento 0 -> [1, 2, 4, 5, 7, 8]

      Type Parameters

      • T

      Parameters

      • inputs: RemoveNthItemDto<T>

        La lista, el paso, el desplazamiento desde el que empezar y si copiar

      Returns T[]

      La lista sin cada enésimo elemento

      const thinned = bitbybit.lists.removeNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Descarta cada elemento de la lista con una probabilidad dada y conserva el resto, de modo que el resultado difiere en cada llamada.

      Ejemplo: [1, 2, 3, 4, 5] con umbral 0.5 -> quizá [2, 4]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        La lista, la probabilidad de descartar un elemento de 0 a 1, y si copiar

      Returns T[]

      Los elementos que sobrevivieron, en su orden original

      const some = bitbybit.lists.randomRemoveThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Elimina los números repetidos, conservando la primera aparición de cada uno.

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

      Parameters

      Returns number[]

      Los números sin repeticiones, en su orden original

    • Elimina los números que están dentro de una tolerancia respecto a uno ya conservado, de modo que los valores que difieren solo por ruido de coma flotante cuentan como el mismo.

      Ejemplo: [1.0, 1.001, 2.0, 2.002, 3.0] con tolerancia 0.01 -> [1.0, 2.0, 3.0]

      Parameters

      Returns number[]

      Los números sin repeticiones aproximadas, en su orden original

      const distinct = bitbybit.lists.removeDuplicateNumbersTolerance({ list: [1.0, 1.001, 2.0], tolerance: 0.01, clone: true });
      
    • Elimina los elementos repetidos de cualquier tipo, conservando la primera aparición de cada uno.

      Los elementos se comparan por identidad, así que dos objetos de aspecto igual se quedan ambos. Ejemplo: ['a', 'b', 'c', 'a', 'd', 'b'] -> ['a', 'b', 'c', 'd']

      Type Parameters

      • T

      Parameters

      Returns T[]

      La lista sin repeticiones, en su orden original

    sorting

    • Ordena números de menor a mayor, o de mayor a menor.

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

      Parameters

      • inputs: SortDto<number>

        Los números, la dirección y si copiar

      Returns number[]

      Los números ordenados

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

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

      Parameters

      • inputs: SortDto<string>

        Los textos, la dirección y si copiar

      Returns string[]

      Los textos ordenados

      const sorted = bitbybit.lists.sortTexts({ list: ["dog", "apple", "cat"], orderAsc: true, clone: true });
      
    • Ordena objetos por el número contenido en una de sus propiedades.

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

      Parameters

      • inputs: SortJsonDto<any>

        Los objetos, la propiedad por la que ordenar, la dirección y si copiar

      Returns any[]

      Los objetos ordenados

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

    transform

    • Entrelaza varias listas en una tomando el primer elemento de cada una por turno, luego el segundo de cada una, y así sucesivamente.

      Una lista más corta simplemente deja de participar cuando se agota. Una lista de listas vacía lanza un error. Ejemplo: [[0, 1, 2], [3, 4, 5]] -> [0, 3, 1, 4, 2, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Una lista con los elementos alternados

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