13 Arrays

In TypeScript, wie auch in JavaScript, sind Arrays eine Möglichkeit, mehrere Werte in einer einzigen Variablen zu speichern. Sie können Elemente eines beliebigen Typs enthalten und werden durch die Verwendung von eckigen Klammern [] oder dem Array-Typkonstruktor definiert.

13.1 Erstellen von Arrays

Ein Array in TypeScript wird auf die gleiche Weise erstellt wie in JavaScript, aber Sie können auch einen Typ angeben. Es gibt zwei Möglichkeiten, dies zu tun:

let names: string[] = ['Alice', 'Bob', 'Charlie'];
let names: Array<string> = ['Alice', 'Bob', 'Charlie'];

13.2 Zugriff auf Elemente

Auf Elemente in einem Array kann zugegriffen werden, indem der Index des Elements in eckigen Klammern nach dem Array-Namen angegeben wird. Die Indizierung beginnt bei 0.

let names: string[] = ['Alice', 'Bob', 'Charlie'];
console.log(names[0]); // Gibt 'Alice' aus

13.3 Array-Methoden

TypeScript-Arrays verfügen über eine Vielzahl von Methoden, die das Arbeiten mit Arrays erleichtern. Einige Beispiele sind:

let names: string[] = ['Alice', 'Bob', 'Charlie'];
names.push('Dave');
// Gibt ['Alice', 'Bob', 'Charlie', 'Dave'] aus
console.log(names); 

let lastName: string = names.pop();
console.log(lastName); // Gibt 'Dave' aus
console.log(names); // Gibt ['Alice', 'Bob', 'Charlie'] aus

13.4 Mehrdimensionale Arrays

TypeScript unterstützt auch mehrdimensionale Arrays, oder “Arrays von Arrays”. Sie können auf die gleiche Weise wie eindimensionale Arrays erstellt und manipuliert werden, mit zusätzlichen eckigen Klammern für jede zusätzliche Dimension:

let matrix: number[][] = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];
console.log(matrix[0][0]); // Gibt 1 aus

Durch die Verwendung von Arrays können Sie komplexere Datenstrukturen und -algorithmen in Ihrem TypeScript-Code erstellen.

13.5 Aufgaben

  1. Aufgabe 1: Erstellen Sie ein Array von Zahlen und führen Sie die folgenden Operationen durch: fügen Sie Elemente hinzu, entfernen Sie Elemente, greifen Sie auf Elemente zu und ändern Sie Elemente.

  2. Aufgabe 2: Erstellen Sie ein zweidimensionales Array, das Zeichenketten enthält. Geben Sie das Element in der zweiten Zeile und der dritten Spalte aus.

  3. Aufgabe 3: Erstellen Sie eine Funktion, die ein Array von Zahlen als Parameter akzeptiert und die Summe der Elemente in diesem Array zurückgibt.

  4. Aufgabe 4: Erstellen Sie eine Funktion, die ein Array von Zeichenketten akzeptiert und eine einzige Zeichenkette zurückgibt, die alle Elemente des Arrays enthält, getrennt durch Kommas.

  5. Aufgabe 5: Erstellen Sie eine Funktion, die ein Array von Zahlen akzeptiert und ein neues Array zurückgibt, das nur die geraden Zahlen aus dem ursprünglichen Array enthält.

  6. Aufgabe 6: Erstellen Sie eine Funktion, die zwei Arrays als Parameter akzeptiert und ein neues Array zurückgibt, das die Elemente beider Arrays enthält.

  7. Aufgabe 7: Erstellen Sie ein Array von Objekten, wobei jedes Objekt eine id und einen name hat. Durchlaufen Sie das Array und geben Sie für jedes Objekt eine Nachricht aus, die id und name enthält.

  8. Aufgabe 8: Erstellen Sie eine Funktion, die ein Array von Zahlen als Parameter akzeptiert und das größte Element in diesem Array zurückgibt.

Lösung 1:

let array: number[] = [1, 2, 3];
array.push(4); // Fügt 4 am Ende hinzu
array.unshift(0); // Fügt 0 am Anfang hinzu
console.log(array[2]); // Zugriff auf das Element am Index 2
array[2] = 5; // Ändert das Element am Index 2

Lösung 2:

let array: string[][] = [["a", "b", "c"], ["d", "e", "f"], ["g", "h", "i"]];
console.log(array[1][2]); // Gibt "f" aus

Lösung 3:

function sumArray(numbers: number[]): number {
    return numbers.reduce((prev, curr) => prev + curr, 0);
}

Lösung 4:

function concatenateStrings(strings: string[]): string {
    return strings.join(",");
}

Lösung 5:

function filterEvenNumbers(numbers: number[]): number[] {
    return numbers.filter(num => num % 2 === 0);
}

Lösung 6:

function concatenateArrays<T>(array1: T[], array2: T[]): T[] {
    return [...array1, ...array2];
}

Lösung 7:

interface Item {
    id: number;
    name: string;
}

let items: Item[] = [{id: 1, name: "item1"}, {id: 2, name: "item2"}];

items.forEach(item => {
    console.log(`ID: ${item.id}, Name: ${item.name}`);
});

Lösung 8:

function findMax(numbers: number[]): number {
    return Math.max(...numbers);
}