Bitbybit Docs
    Bereite Suchindex vor...

    Klasse Lists

    Lesen, Bauen und Umformen einfacher Arrays beliebiger Elemente. Positionen sind 0-basiert: Index 0 ist das erste Element. Die meisten Methoden nehmen eine clone-Option, standardmäßig an, die die Liste zuerst tief kopiert, sodass die Eingabe nie geändert wird; ausgeschaltet arbeiten die ändernden Methoden an Ort und Stelle auf der Liste, was bei großen Daten schneller ist. removeAllItems leert immer die übergebene Liste.

    Index

    Konstruktoren

    add

    • Fügt ein Element an einer Position ein; die Elemente ab dieser Position rücken um eins nach hinten.

      Beispiel: [10, 20, 30, 40] mit 99 bei Index 2 -> [10, 20, 99, 30, 40]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste mit dem eingefügten Element

      const longer = bitbybit.lists.addItemAtIndex({ list: [10, 20, 30, 40], item: 99, index: 2, clone: true });
      
    • Fügt dasselbe Element an mehreren Positionen der ursprünglichen Liste ein.

      Beispiel: [10, 20, 30] mit 99 bei Indizes [0, 2] -> [99, 10, 20, 99, 30]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste mit dem Element an jedem Index eingefügt

      const marked = bitbybit.lists.addItemAtIndexes({ list: [10, 20, 30], item: 99, indexes: [0, 2], clone: true });
      
    • Fügt mehrere Elemente ein, das erste beim ersten Index, das zweite beim zweiten, und so weiter, alle auf der ursprünglichen Liste gezählt.

      Die Indizes müssen in aufsteigender Reihenfolge sein und es muss einen pro Element geben, sonst wird ein Fehler ausgelöst. Beispiel: [10, 20, 30] mit Elementen [88, 99] bei Indizes [1, 2] -> [10, 88, 20, 99, 30]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste mit den eingefügten Elementen

      const merged = bitbybit.lists.addItemsAtIndexes({ list: [10, 20, 30], items: [88, 99], indexes: [1, 2], clone: true });
      
    • Fügt ein Element am Ende der Liste hinzu.

      Beispiel: [10, 20, 30] Hinzufügen von 40 -> [10, 20, 30, 40]

      Typenparameter

      • T

      Parameter

      • inputs: AddItemDto<T>

        Die Liste, das Element und ob kopiert wird

      Rückgabewert T[]

      Die Liste mit dem Element an ihrem Ende

      const longer = bitbybit.lists.addItem({ list: [10, 20, 30], item: 40, clone: true });
      
    • Fügt ein Element am Anfang der Liste hinzu.

      Beispiel: [10, 20, 30] Voranstellen von 5 -> [5, 10, 20, 30]

      Typenparameter

      • T

      Parameter

      • inputs: AddItemDto<T>

        Die Liste, das Element und ob kopiert wird

      Rückgabewert T[]

      Die Liste mit dem Element an ihrem Anfang

      const longer = bitbybit.lists.prependItem({ list: [10, 20, 30], item: 5, clone: true });
      
    • Fügt ein Element am Anfang oder am Ende der Liste hinzu, wie gewählt.

      Beispiel: [10, 20, 30] Hinzufügen von 5 zuerst -> [5, 10, 20, 30]; zuletzt -> [10, 20, 30, 5]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste mit dem hinzugefügten Element

      const longer = bitbybit.lists.addItemFirstLast({ list: [10, 20, 30], item: 5, position: Bit.Inputs.Lists.firstLastEnum.first, clone: true });
      
    • Verbindet mehrere Listen zu einer, Ende an Ende.

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

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Eine Liste mit allen Elementen

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

    create

    • Erstellt eine neue Liste ohne Inhalt.

      Beispiel: -> []

      Rückgabewert []

      Eine leere Liste

    • Erstellt eine Liste, die dasselbe Element mehrmals enthält.

      Beispiel: 5 dreimal -> [5, 5, 5]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste der Wiederholungen

      const fives = bitbybit.lists.repeat({ item: 5, times: 3 });
      
    • Wiederholt ein Muster von Elementen immer wieder, bis die Liste eine gegebene Länge erreicht.

      Beispiel: [1, 2, 3] auf Länge 7 -> [1, 2, 3, 1, 2, 3, 1]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Das wiederholte Muster, auf die Länge zugeschnitten

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

    edit

    • Kehrt die Reihenfolge der Elemente um.

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

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die umgekehrte Liste

    • Bringt die Elemente in eine zufällige Reihenfolge, bei jedem Aufruf anders.

      Beispiel: [1, 2, 3, 4, 5] -> vielleicht [3, 1, 5, 2, 4]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die gemischte Liste

    • Kippt eine Liste von Listen auf die Seite: Zeilen werden zu Spalten und Spalten zu Zeilen.

      Alle inneren Listen müssen gleich lang sein. Beispiel: [[0, 1, 2], [3, 4, 5]] -> [[0, 3], [1, 4], [2, 5]]

      Typenparameter

      • T

      Parameter

      • inputs: ListCloneDto<T[]>

        Die Liste von Listen und ob sie zuerst kopiert wird

      Rückgabewert T[][]

      Die transponierte Liste von Listen

      const columns = bitbybit.lists.flipLists({ list: [[0, 1, 2], [3, 4, 5]], clone: true });
      
    • Teilt die Liste in Gruppen von n Elementen.

      Am Ende übrig bleibende Elemente werden verworfen, sofern keepRemainder nicht an ist, was sie als kürzere letzte Gruppe hinzufügt. Beispiel: [0, 1, 2, 3, 4, 5, 6, 7, 8] in Gruppen von 3 -> [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

      Typenparameter

      • T

      Parameter

      • inputs: GroupListDto<T>

        Die Liste, die Gruppengröße und ob eine unvollständige letzte Gruppe behalten wird

      Rückgabewert T[][]

      Die Gruppen, in Reihenfolge

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

    get

    • Liest das Element an einer Position in der Liste, gezählt ab 0.

      Ein Index außerhalb der Liste löst einen Fehler aus. Beispiel: [10, 20, 30, 40] bei Index 2 -> 30

      Typenparameter

      • T

      Parameter

      • inputs: ListItemDto<T>

        Die Liste, der Index und ob das Element kopiert wird

      Rückgabewert T

      Das Element an diesem Index

      const third = bitbybit.lists.getItem({ list: [10, 20, 30, 40], index: 2, clone: true });
      
    • Liest das erste Element der Liste.

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

      Typenparameter

      • T

      Parameter

      • inputs: ListCloneDto<T>

        Die Liste und ob das Element kopiert wird

      Rückgabewert T

      Das erste Element

    • Liest das letzte Element der Liste.

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

      Typenparameter

      • T

      Parameter

      • inputs: ListCloneDto<T>

        Die Liste und ob das Element kopiert wird

      Rückgabewert T

      Das letzte Element

    • Behält jedes Element der Liste mit einer gegebenen Wahrscheinlichkeit und verwirft den Rest, sodass das Ergebnis bei jedem Aufruf anders ist.

      Beispiel: [1, 2, 3, 4, 5] mit Schwellenwert 0.5 -> vielleicht [1, 3, 5]

      Typenparameter

      • T

      Parameter

      • inputs: RandomThresholdDto<T>

        Die Liste, die Wahrscheinlichkeit von 0 bis 1, ein Element zu behalten, und ob kopiert wird

      Rückgabewert T[]

      Die behaltenen Elemente, in ihrer ursprünglichen Reihenfolge

      const some = bitbybit.lists.randomGetThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Schneidet die Elemente von einem Startindex bis, aber ohne, einen Endindex heraus.

      Beispiel: [10, 20, 30, 40, 50] von 1 bis 4 -> [20, 30, 40]

      Typenparameter

      • T

      Parameter

      • inputs: SubListDto<T>

        Die Liste, der Start- und der Endindex und ob kopiert wird

      Rückgabewert T[]

      Die Elemente in diesem Bereich

      const middle = bitbybit.lists.getSubList({ list: [10, 20, 30, 40, 50], indexStart: 1, indexEnd: 4, clone: true });
      
    • Behält jedes n-te Element, beginnend bei einem Versatz.

      Beispiel: [0, 1, 2, 3, 4, 5, 6, 7, 8] mit nth 3 und Versatz 0 -> [0, 3, 6]; mit nth 2 und Versatz 1 -> [1, 3, 5, 7]

      Typenparameter

      • T

      Parameter

      • inputs: GetNthItemDto<T>

        Die Liste, die Schrittweite, der Versatz, ab dem begonnen wird, und ob kopiert wird

      Rückgabewert T[]

      Jedes n-te Element, in Reihenfolge

      const everyThird = bitbybit.lists.getNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Behält die Elemente, bei denen ein sich wiederholendes true/false-Muster true sagt, und verwirft die anderen.

      Das Muster beginnt von vorn, wenn es zu Ende ist. Beispiel: [0, 1, 2, 3, 4, 5] mit Muster [true, true, false] -> [0, 1, 3, 4]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die vom Muster behaltenen Elemente, in Reihenfolge

      const kept = bitbybit.lists.getByPattern({ list: [0, 1, 2, 3, 4, 5], pattern: [true, true, false] });
      
    • Gruppiert verschachtelte Listen nach Position neu: die ersten Elemente jeder Liste kommen zusammen, dann die zweiten Elemente, und so weiter.

      level sagt, wie viele Verschachtelungsebenen in jeder Liste zuerst abgeflacht werden; 0 gruppiert sie neu, wie sie sind. Beispiel: [[0, 1, 2], [3, 4, 5]] bei Ebene 0 -> [[0, 3], [1, 4], [2, 5]]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die neu gruppierten Listen

      const columns = bitbybit.lists.mergeElementsOfLists({ lists: [[0, 1, 2], [3, 4, 5]], level: 0 });
      
    • Misst die längste Liste unter mehreren.

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

      Typenparameter

      • T

      Parameter

      Rückgabewert number

      Die Länge der längsten

      const longest = bitbybit.lists.getLongestListLength({ lists: [[1, 2], [3, 4, 5, 6], [7]] });
      
    • Sagt, ob ein Element in der Liste ist.

      Elemente werden nach Identität verglichen, daher wird ein Objekt nur gefunden, wenn genau dasselbe Objekt in der Liste ist. Beispiel: [10, 20, 30, 40] enthält 30 -> true, enthält 50 -> false

      Typenparameter

      • T

      Parameter

      Rückgabewert boolean

      True, wenn das Element in der Liste ist

      const found = bitbybit.lists.includes({ list: [10, 20, 30, 40], item: 30 });
      
    • Ermittelt die Position des ersten Vorkommens eines Elements, oder -1, wenn es nicht in der Liste ist.

      Beispiel: [10, 20, 30, 20, 40] Suche nach 20 -> 1, Suche nach 50 -> -1

      Typenparameter

      • T

      Parameter

      Rückgabewert number

      Der 0-basierte Index oder -1

      const where = bitbybit.lists.findIndex({ list: [10, 20, 30, 20, 40], item: 20 });
      
    • Misst, wie tief Listen in der Liste verschachtelt sind.

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

      Parameter

      Rückgabewert number

      Die Anzahl der Verschachtelungsebenen

    • Zählt die Elemente in der Liste.

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

      Typenparameter

      • T

      Parameter

      Rückgabewert number

      Die Anzahl der Elemente

    remove

    • Entfernt das Element an einer Position.

      Beispiel: [10, 20, 30, 40, 50] Entfernen von Index 2 -> [10, 20, 40, 50]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste ohne dieses Element

      const shorter = bitbybit.lists.removeItemAtIndex({ list: [10, 20, 30, 40, 50], index: 2, clone: true });
      
    • Entfernt das erste Element.

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

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste ohne ihr erstes Element

    • Entfernt das letzte Element.

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

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste ohne ihr letztes Element

    • Entfernt ein vom Ende her gezähltes Element: Index 0 ist das letzte Element, 1 das davor.

      Beispiel: [10, 20, 30, 40, 50] Entfernen von Index 1 vom Ende -> [10, 20, 30, 50]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste ohne dieses Element

      const shorter = bitbybit.lists.removeItemAtIndexFromEnd({ list: [10, 20, 30, 40, 50], index: 1, clone: true });
      
    • Entfernt die Elemente an mehreren Positionen, alle auf der ursprünglichen Liste gezählt.

      Beispiel: [10, 20, 30, 40, 50] Entfernen der Indizes [1, 3] -> [10, 30, 50]

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste ohne diese Elemente

      const kept = bitbybit.lists.removeItemsAtIndexes({ list: [10, 20, 30, 40, 50], indexes: [1, 3], clone: true });
      
    • Leert die übergebene Liste an Ort und Stelle: dasselbe Array kommt ohne Elemente zurück.

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

      Typenparameter

      • T

      Parameter

      • inputs: ListDto<T>

        Die zu leerende Liste

      Rückgabewert T[]

      Dieselbe Liste, jetzt leer

    • Entfernt jedes n-te Element, beginnend bei einem Versatz.

      Beispiel: [0, 1, 2, 3, 4, 5, 6, 7, 8] mit nth 3 und Versatz 0 -> [1, 2, 4, 5, 7, 8]

      Typenparameter

      • T

      Parameter

      • inputs: RemoveNthItemDto<T>

        Die Liste, die Schrittweite, der Versatz, ab dem begonnen wird, und ob kopiert wird

      Rückgabewert T[]

      Die Liste ohne jedes n-te Element

      const thinned = bitbybit.lists.removeNthItem({ list: [0, 1, 2, 3, 4, 5, 6, 7, 8], nth: 3, offset: 0, clone: true });
      
    • Verwirft jedes Element der Liste mit einer gegebenen Wahrscheinlichkeit und behält den Rest, sodass das Ergebnis bei jedem Aufruf anders ist.

      Beispiel: [1, 2, 3, 4, 5] mit Schwellenwert 0.5 -> vielleicht [2, 4]

      Typenparameter

      • T

      Parameter

      • inputs: RandomThresholdDto<T>

        Die Liste, die Wahrscheinlichkeit von 0 bis 1, ein Element zu entfernen, und ob kopiert wird

      Rückgabewert T[]

      Die übrig gebliebenen Elemente, in ihrer ursprünglichen Reihenfolge

      const some = bitbybit.lists.randomRemoveThreshold({ list: [1, 2, 3, 4, 5], threshold: 0.5, clone: true });
      
    • Entfernt wiederholte Zahlen und behält das erste Vorkommen jeder.

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

      Parameter

      Rückgabewert number[]

      Die Zahlen ohne Wiederholungen, in ihrer ursprünglichen Reihenfolge

    • Entfernt Zahlen, die innerhalb einer Toleranz zu einer bereits behaltenen liegen, sodass Werte, die sich nur durch Gleitkommarauschen unterscheiden, als gleich gelten.

      Beispiel: [1.0, 1.001, 2.0, 2.002, 3.0] mit Toleranz 0.01 -> [1.0, 2.0, 3.0]

      Parameter

      Rückgabewert number[]

      Die Zahlen ohne Beinahe-Wiederholungen, in ihrer ursprünglichen Reihenfolge

      const distinct = bitbybit.lists.removeDuplicateNumbersTolerance({ list: [1.0, 1.001, 2.0], tolerance: 0.01, clone: true });
      
    • Entfernt wiederholte Elemente beliebiger Art und behält das erste Vorkommen jedes.

      Elemente werden nach Identität verglichen, daher bleiben zwei gleich aussehende Objekte beide. Beispiel: ['a', 'b', 'c', 'a', 'd', 'b'] -> ['a', 'b', 'c', 'd']

      Typenparameter

      • T

      Parameter

      Rückgabewert T[]

      Die Liste ohne Wiederholungen, in ihrer ursprünglichen Reihenfolge

    sorting

    • Sortiert Zahlen von der niedrigsten zur höchsten oder von der höchsten zur niedrigsten.

      Beispiel: [5, 2, 8, 1, 9] aufsteigend -> [1, 2, 5, 8, 9]; absteigend -> [9, 8, 5, 2, 1]

      Parameter

      • inputs: SortDto<number>

        Die Zahlen, die Richtung und ob kopiert wird

      Rückgabewert number[]

      Die sortierten Zahlen

      const sorted = bitbybit.lists.sortNumber({ list: [5, 2, 8, 1, 9], orderAsc: true, clone: true });
      
    • Sortiert Texte alphabetisch, von A bis Z oder von Z bis A.

      Beispiel: ['dog', 'apple', 'cat'] aufsteigend -> ['apple', 'cat', 'dog']

      Parameter

      • inputs: SortDto<string>

        Die Texte, die Richtung und ob kopiert wird

      Rückgabewert string[]

      Die sortierten Texte

      const sorted = bitbybit.lists.sortTexts({ list: ["dog", "apple", "cat"], orderAsc: true, clone: true });
      
    • Sortiert Objekte nach der Zahl in einer ihrer Eigenschaften.

      Beispiel: [{age: 30}, {age: 20}, {age: 25}] nach 'age' aufsteigend -> [{age: 20}, {age: 25}, {age: 30}]

      Parameter

      • inputs: SortJsonDto<any>

        Die Objekte, die Eigenschaft, nach der sortiert wird, die Richtung und ob kopiert wird

      Rückgabewert any[]

      Die sortierten Objekte

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

    transform

    • Verflicht mehrere Listen zu einer, indem der Reihe nach das erste Element jeder genommen wird, dann das zweite jeder, und so weiter.

      Eine kürzere Liste fällt einfach weg, sobald sie erschöpft ist. Eine leere Liste von Listen löst einen Fehler aus. Beispiel: [[0, 1, 2], [3, 4, 5]] -> [0, 3, 1, 4, 2, 5]

      Typenparameter

      • T

      Parameter

      • inputs: InterleaveDto<T>

        Die zu verflechtenden Listen und ob kopiert wird

      Rückgabewert T[]

      Eine Liste mit den Elementen im Wechsel

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