Bitbybit Docs
    Preparing search index...

    Class Lists

    Lire, construire et remodeler de simples tableaux de tout type d'élément. Les positions commencent à 0 : l'index 0 est le premier élément. La plupart des méthodes prennent une option clone, activée par défaut, qui copie en profondeur la liste d'abord pour que l'entrée ne soit jamais modifiée ; désactivée, les méthodes modificatrices travaillent sur la liste en place, ce qui est plus rapide pour les grandes données. removeAllItems vide toujours la liste qui lui est donnée.

    Index

    Constructors

    add

    • Insère un élément à une position ; les éléments à partir de cette position se décalent d'une place.

      Exemple : [10, 20, 30, 40] avec 99 à l'index 2 -> [10, 20, 99, 30, 40]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste avec l'élément inséré

      const longer = bitbybit.lists.addItemAtIndex({ list: [10, 20, 30, 40], item: 99, index: 2, clone: true });
      
    • Insère le même élément à plusieurs positions de la liste d'origine.

      Exemple : [10, 20, 30] avec 99 aux index [0, 2] -> [99, 10, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste avec l'élément inséré à chaque index

      const marked = bitbybit.lists.addItemAtIndexes({ list: [10, 20, 30], item: 99, indexes: [0, 2], clone: true });
      
    • Insère plusieurs éléments, le premier au premier index, le second au second, et ainsi de suite, tous comptés sur la liste d'origine.

      Les index doivent être par ordre croissant et il doit y en avoir un par élément, sinon une erreur est levée. Exemple : [10, 20, 30] avec les éléments [88, 99] aux index [1, 2] -> [10, 88, 20, 99, 30]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste avec les éléments insérés

      const merged = bitbybit.lists.addItemsAtIndexes({ list: [10, 20, 30], items: [88, 99], indexes: [1, 2], clone: true });
      
    • Ajoute un élément à la fin de la liste.

      Exemple : [10, 20, 30] en ajoutant 40 -> [10, 20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemDto<T>

        La liste, l'élément et s'il faut copier

      Returns T[]

      La liste avec l'élément à sa fin

      const longer = bitbybit.lists.addItem({ list: [10, 20, 30], item: 40, clone: true });
      
    • Ajoute un élément au début de la liste.

      Exemple : [10, 20, 30] en ajoutant 5 au début -> [5, 10, 20, 30]

      Type Parameters

      • T

      Parameters

      • inputs: AddItemDto<T>

        La liste, l'élément et s'il faut copier

      Returns T[]

      La liste avec l'élément à son début

      const longer = bitbybit.lists.prependItem({ list: [10, 20, 30], item: 5, clone: true });
      
    • Ajoute un élément au début ou à la fin de la liste, au choix.

      Exemple : [10, 20, 30] en ajoutant 5 au début -> [5, 10, 20, 30] ; à la fin -> [10, 20, 30, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste avec l'élément ajouté

      const longer = bitbybit.lists.addItemFirstLast({ list: [10, 20, 30], item: 5, position: Bit.Inputs.Lists.firstLastEnum.first, clone: true });
      
    • Joint plusieurs listes en une seule, bout à bout.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      Une liste avec tous les éléments

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

    create

    • Crée une nouvelle liste sans rien dedans.

      Exemple : -> []

      Returns []

      Une liste vide

    • Crée une liste qui contient le même élément un certain nombre de fois.

      Exemple : 5 trois fois -> [5, 5, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste des répétitions

      const fives = bitbybit.lists.repeat({ item: 5, times: 3 });
      
    • Répète un motif d'éléments encore et encore jusqu'à ce que la liste atteigne une longueur donnée.

      Exemple : [1, 2, 3] jusqu'à la longueur 7 -> [1, 2, 3, 1, 2, 3, 1]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Le motif répété, coupé à la longueur

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

    edit

    • Inverse l'ordre des éléments.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste inversée

    • Met les éléments dans un ordre aléatoire, différent à chaque appel.

      Exemple : [1, 2, 3, 4, 5] -> peut-être [3, 1, 5, 2, 4]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste mélangée

    • Bascule une liste de listes sur le côté : les lignes deviennent des colonnes et les colonnes des lignes.

      Toutes les listes intérieures doivent avoir la même longueur. Exemple : [[0, 1, 2], [3, 4, 5]] -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      • inputs: ListCloneDto<T[]>

        La liste de listes et s'il faut d'abord la copier

      Returns T[][]

      La liste de listes transposée

      const columns = bitbybit.lists.flipLists({ list: [[0, 1, 2], [3, 4, 5]], clone: true });
      
    • Répartit la liste en groupes de n éléments.

      Les éléments restants à la fin sont ignorés sauf si keepRemainder est actif, qui les ajoute comme un dernier groupe plus court. Exemple : [0, 1, 2, 3, 4, 5, 6, 7, 8] en groupes de 3 -> [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

      Type Parameters

      • T

      Parameters

      • inputs: GroupListDto<T>

        La liste, la taille des groupes et s'il faut conserver un dernier groupe partiel

      Returns T[][]

      Les groupes, dans l'ordre

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

    get

    • Lit l'élément à une position de la liste, en comptant à partir de 0.

      Un index hors de la liste lève une erreur. Exemple : [10, 20, 30, 40] à l'index 2 -> 30

      Type Parameters

      • T

      Parameters

      • inputs: ListItemDto<T>

        La liste, l'index et s'il faut copier l'élément

      Returns T

      L'élément à cet index

      const third = bitbybit.lists.getItem({ list: [10, 20, 30, 40], index: 2, clone: true });
      
    • Lit le premier élément de la liste.

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

      Type Parameters

      • T

      Parameters

      Returns T

      Le premier élément

    • Lit le dernier élément de la liste.

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

      Type Parameters

      • T

      Parameters

      Returns T

      Le dernier élément

    • Garde chaque élément de la liste avec une probabilité donnée et supprime les autres, le résultat diffère donc à chaque appel.

      Exemple : [1, 2, 3, 4, 5] avec le seuil 0.5 -> peut-être [1, 3, 5]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        La liste, la probabilité de conserver un élément de 0 à 1, et s'il faut copier

      Returns T[]

      Les éléments conservés, dans leur ordre d'origine

      const some = bitbybit.lists.randomGetThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Découpe les éléments d'un index de début jusqu'à un index de fin, non compris.

      Exemple : [10, 20, 30, 40, 50] de 1 à 4 -> [20, 30, 40]

      Type Parameters

      • T

      Parameters

      • inputs: SubListDto<T>

        La liste, les index de début et de fin, et s'il faut copier

      Returns T[]

      Les éléments de cette plage

      const middle = bitbybit.lists.getSubList({ list: [10, 20, 30, 40, 50], indexStart: 1, indexEnd: 4, clone: true });
      
    • Garde chaque n-ième élément, à partir d'un décalage.

      Exemple : [0, 1, 2, 3, 4, 5, 6, 7, 8] avec nth 3 et décalage 0 -> [0, 3, 6] ; avec nth 2 et décalage 1 -> [1, 3, 5, 7]

      Type Parameters

      • T

      Parameters

      • inputs: GetNthItemDto<T>

        La liste, le pas, le décalage de départ, et s'il faut copier

      Returns T[]

      Chaque n-ième élément, dans l'ordre

      const everyThird = bitbybit.lists.getNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Garde les éléments là où un motif vrai/faux répété dit vrai et supprime les autres.

      Le motif recommence quand il est épuisé. Exemple : [0, 1, 2, 3, 4, 5] avec le motif [true, true, false] -> [0, 1, 3, 4]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Les éléments conservés par le motif, dans l'ordre

      const kept = bitbybit.lists.getByPattern({ list: [0, 1, 2, 3, 4, 5], pattern: [true, true, false] });
      
    • Regroupe des listes imbriquées par position : les premiers éléments de chaque liste vont ensemble, puis les deuxièmes éléments, et ainsi de suite.

      level dit combien de niveaux d'imbrication aplatir d'abord dans chaque liste ; 0 les regroupe telles quelles. Exemple : [[0, 1, 2], [3, 4, 5]] au niveau 0 -> [[0, 3], [1, 4], [2, 5]]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Les listes regroupées

      const columns = bitbybit.lists.mergeElementsOfLists({ lists: [[0, 1, 2], [3, 4, 5]], level: 0 });
      
    • Mesure la liste la plus longue parmi plusieurs.

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

      Type Parameters

      • T

      Parameters

      Returns number

      La longueur de la plus longue

      const longest = bitbybit.lists.getLongestListLength({ lists: [[1, 2], [3, 4, 5, 6], [7]] });
      
    • Indique si un élément est dans la liste.

      Les éléments sont comparés par identité, un objet n'est donc trouvé que si exactement le même objet est dans la liste. Exemple : [10, 20, 30, 40] contient 30 -> true, contient 50 -> false

      Type Parameters

      • T

      Parameters

      Returns boolean

      Vrai quand l'élément est dans la liste

      const found = bitbybit.lists.includes({ list: [10, 20, 30, 40], item: 30 });
      
    • Trouve la position de la première occurrence d'un élément, ou -1 quand il n'est pas dans la liste.

      Exemple : [10, 20, 30, 20, 40] en cherchant 20 -> 1, en cherchant 50 -> -1

      Type Parameters

      • T

      Parameters

      Returns number

      L'index à partir de 0, ou -1

      const where = bitbybit.lists.findIndex({ list: [10, 20, 30, 20, 40], item: 20 });
      
    • Mesure la profondeur d'imbrication des listes dans la liste.

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

      Parameters

      Returns number

      Le nombre de niveaux d'imbrication

    • Compte les éléments de la liste.

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

      Type Parameters

      • T

      Parameters

      Returns number

      Le nombre d'éléments

    remove

    • Supprime l'élément à une position.

      Exemple : [10, 20, 30, 40, 50] en supprimant l'index 2 -> [10, 20, 40, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste sans cet élément

      const shorter = bitbybit.lists.removeItemAtIndex({ list: [10, 20, 30, 40, 50], index: 2, clone: true });
      
    • Supprime le premier élément.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste sans son premier élément

    • Supprime le dernier élément.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste sans son dernier élément

    • Supprime un élément compté depuis la fin : l'index 0 est le dernier élément, 1 celui d'avant.

      Exemple : [10, 20, 30, 40, 50] en supprimant l'index 1 depuis la fin -> [10, 20, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste sans cet élément

      const shorter = bitbybit.lists.removeItemAtIndexFromEnd({ list: [10, 20, 30, 40, 50], index: 1, clone: true });
      
    • Supprime les éléments à plusieurs positions, toutes comptées sur la liste d'origine.

      Exemple : [10, 20, 30, 40, 50] en supprimant les index [1, 3] -> [10, 30, 50]

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste sans ces éléments

      const kept = bitbybit.lists.removeItemsAtIndexes({ list: [10, 20, 30, 40, 50], indexes: [1, 3], clone: true });
      
    • Vide la liste qui lui est donnée, sur place : le même tableau revient sans aucun élément.

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

      Type Parameters

      • T

      Parameters

      Returns T[]

      La même liste, maintenant vide

    • Supprime chaque n-ième élément, à partir d'un décalage.

      Exemple : [0, 1, 2, 3, 4, 5, 6, 7, 8] avec nth 3 et décalage 0 -> [1, 2, 4, 5, 7, 8]

      Type Parameters

      • T

      Parameters

      • inputs: RemoveNthItemDto<T>

        La liste, le pas, le décalage de départ et s'il faut copier

      Returns T[]

      La liste sans chaque n-ième élément

      const thinned = bitbybit.lists.removeNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Supprime chaque élément de la liste avec une probabilité donnée et garde les autres, le résultat diffère donc à chaque appel.

      Exemple : [1, 2, 3, 4, 5] avec le seuil 0.5 -> peut-être [2, 4]

      Type Parameters

      • T

      Parameters

      • inputs: RandomThresholdDto<T>

        La liste, la probabilité de supprimer un élément de 0 à 1, et s'il faut copier

      Returns T[]

      Les éléments restants, dans leur ordre d'origine

      const some = bitbybit.lists.randomRemoveThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Supprime les nombres répétés, en gardant la première occurrence de chacun.

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

      Parameters

      Returns number[]

      Les nombres sans répétitions, dans leur ordre d'origine

    • Supprime les nombres qui sont à une tolérance près d'un nombre déjà gardé, de sorte que des valeurs qui ne diffèrent que par du bruit en virgule flottante comptent comme identiques.

      Exemple : [1.0, 1.001, 2.0, 2.002, 3.0] avec la tolérance 0.01 -> [1.0, 2.0, 3.0]

      Parameters

      Returns number[]

      Les nombres sans quasi-répétitions, dans leur ordre d'origine

      const distinct = bitbybit.lists.removeDuplicateNumbersTolerance({ list: [1.0, 1.001, 2.0], tolerance: 0.01, clone: true });
      
    • Supprime les éléments répétés de toute nature, en gardant la première occurrence de chacun.

      Les éléments sont comparés par identité, deux objets d'apparence égale restent donc tous les deux. Exemple : ['a', 'b', 'c', 'a', 'd', 'b'] -> ['a', 'b', 'c', 'd']

      Type Parameters

      • T

      Parameters

      Returns T[]

      La liste sans répétitions, dans son ordre d'origine

    sorting

    • Trie des nombres du plus petit au plus grand, ou du plus grand au plus petit.

      Exemple : [5, 2, 8, 1, 9] croissant -> [1, 2, 5, 8, 9] ; décroissant -> [9, 8, 5, 2, 1]

      Parameters

      • inputs: SortDto<number>

        Les nombres, le sens et s'il faut copier

      Returns number[]

      Les nombres triés

      const sorted = bitbybit.lists.sortNumber({ list: [5, 2, 8, 1, 9], orderAsc: true, clone: true });
      
    • Trie des textes par ordre alphabétique, de A à Z ou de Z à A.

      Exemple : ['dog', 'apple', 'cat'] croissant -> ['apple', 'cat', 'dog']

      Parameters

      • inputs: SortDto<string>

        Les textes, le sens et s'il faut copier

      Returns string[]

      Les textes triés

      const sorted = bitbybit.lists.sortTexts({ list: ["dog", "apple", "cat"], orderAsc: true, clone: true });
      
    • Trie des objets selon le nombre contenu dans l'une de leurs propriétés.

      Exemple : [{age: 30}, {age: 20}, {age: 25}] par 'age' croissant -> [{age: 20}, {age: 25}, {age: 30}]

      Parameters

      • inputs: SortJsonDto<any>

        Les objets, la propriété selon laquelle trier, le sens et s'il faut copier

      Returns any[]

      Les objets triés

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

    transform

    • Entrelace plusieurs listes en une seule en prenant le premier élément de chacune à tour de rôle, puis le second de chacune, et ainsi de suite.

      Une liste plus courte sort simplement du jeu une fois épuisée. Une liste de listes vide lève une erreur. Exemple : [[0, 1, 2], [3, 4, 5]] -> [0, 3, 1, 4, 2, 5]

      Type Parameters

      • T

      Parameters

      Returns T[]

      Une liste avec les éléments en alternance

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