Menu
Coddy logo textTech

Häufige Muster bei 2D-Arrays

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

Randdurchlauf

Um die Randelemente zu durchlaufen, lässt du einen Index (0 oder size - 1) konstant, während du über den anderen iterierst.

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

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

  1. Hauptdiagonale: Gib alle Elemente aus, bei denen der Zeilenindex dem Spaltenindex entspricht.
  2. Antidiagonale: Gib alle Elemente aus, bei denen die Summe aus Zeilen- und Spaltenindex der Größe des Arrays minus 1 entspricht.
  3. Ränder: Gib die Elemente des oberen, unteren, linken und rechten Randes des Arrays 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

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

Übe selbstständig: Online-JavaScript-Compiler