Menu
Coddy logo textTech

Gängige 2D-Array-Muster

Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy — Lektion 13 von 65.

Bestimmte Muster treten häufig auf, wenn man mit 2D-Arrays arbeitet. Das Erkennen dieser Muster kann Ihnen helfen, Probleme effizienter zu lösen. Hier sind einige gängige Muster:

Diagonale Traversierung

Der Zugriff auf Elemente, bei denen der Zeilenindex dem Spaltenindex entspricht (matrix[i][i]), ergibt die Hauptdiagonale. Für die Antidiagonale entspricht die Summe der Zeilen- und Spaltenindizes der Größe des Arrays minus 1 (matrix[i][size - 1 - i]).

Zum Beispiel:

1  2  3
4  5  6
7  8  9

Durchlaufe die Hauptdiagonale (matrix[i][i]): 1, 5, 9
Durchlaufe die Nebendiagonale (matrix[i][size - 1 - i]): 3, 5, 7

Randtraversierung

Um die Randelemente zu durchlaufen, halten Sie einen Index konstant (0 oder size - 1), während Sie über den anderen iterieren.

Um auf den oberen Rand zuzugreifen, iterieren Sie über die Spalten, wobei der Zeilenindex auf 0 fixiert ist.

Zum Beispiel:

1  2  3  4
5  6  7  8
9 10 11 12

Randelemente: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (alle außer 6 und 7)

challenge icon

Aufgabe

Einfach

Erstellen Sie eine Funktion namens printPatterns, die ein quadratisches 2D-Array von Ganzzahlen (matrix) als Eingabe entgegennimmt und die folgenden Muster ausgibt:

  1. Main Diagonal: Geben Sie alle Elemente aus, bei denen der Zeilenindex dem Spaltenindex entspricht.
  2. Anti-Diagonal: Geben Sie alle Elemente aus, bei denen die Summe der Zeilen- und Spaltenindizes der Größe der Matrix minus 1 entspricht.
  3. Borders: Geben Sie die Elemente des oberen, unteren, linken und rechten Randes der Matrix aus.

Die Ausgabe sollte wie folgt aussehen:

Main Diagonal: 1 6 11 16 
Anti-Diagonal: 4 7 10 13 
Top Border: 1 2 3 4 
Bottom Border: 13 14 15 16 
Left Border: 1 5 9 13 
Right Border: 4 8 12 16

Spickzettel

Gängige Muster für das Durchlaufen von 2D-Arrays:

Diagonales Durchlaufen

Hauptdiagonale: matrix[i][i] (Zeilenindex entspricht Spaltenindex)

Nebendiagonale: matrix[i][size - 1 - i] (Summe von Zeilen- und Spaltenindex entspricht size - 1)

1  2  3
4  5  6
7  8  9

Hauptdiagonale: 1, 5, 9
Nebendiagonale: 3, 5, 7

Randdurchlauf

Halten Sie einen Index konstant (0 oder size - 1), während Sie über den anderen iterieren:

  • Oberer Rand: Zeilenindex = 0, Spalten iterieren
  • Unterer Rand: Zeilenindex = size - 1, Spalten iterieren
  • Linker Rand: Spaltenindex = 0, Zeilen iterieren
  • Rechter Rand: Spaltenindex = size - 1, Zeilen iterieren

Probier es selbst

function printPatterns(matrix) {
    let mainDiagonal = []
    // TODO: Implementieren
    console.log("Main Diagonal:", mainDiagonal.join(" "));
    
    let antiDiagonal = [];
    // TODO: Implementieren
    console.log("Anti-Diagonal:", antiDiagonal.join(" "));
    
    let topBorder = [];
    // TODO: Implementieren
    console.log("Top Border:", topBorder.join(" "));
    
    let bottomBorder = [];
    // TODO: Implementieren
    console.log("Bottom Border:", bottomBorder.join(" "));
    
    let leftBorder = [];
    // TODO: Implementieren
    console.log("Left Border:", leftBorder.join(" "));
    
    let rightBorder = [];
    // TODO: Implementieren
    console.log("Right Border:", rightBorder.join(" "));
}
// Schreiben Sie nichts außerhalb der Funktion
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf