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 9Durchlaufe 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 12Randelemente: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (alle außer 6 und 7)
Aufgabe
EinfachErstellen Sie eine Funktion namens printPatterns, die ein quadratisches 2D-Array von Ganzzahlen (matrix) als Eingabe entgegennimmt und die folgenden Muster ausgibt:
- Main Diagonal: Geben Sie alle Elemente aus, bei denen der Zeilenindex dem Spaltenindex entspricht.
- Anti-Diagonal: Geben Sie alle Elemente aus, bei denen die Summe der Zeilen- und Spaltenindizes der Größe der Matrix minus 1 entspricht.
- 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 16Spickzettel
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 9Hauptdiagonale: 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 FunktionDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Strings im Detail
String-GrundlagenÜber Strings iterierenTemplate LiteralsString-MethodenRückblick – String Weaver4JSON Teil 2
Über JSON iterierenVerschachteltes JSONJSON Optional ChainingFlache und tiefe KopieWiederholung – FahrradladenWiederholung – Sonnensystem7Bibliotheksverwaltungssystem
ProjektübersichtBücher hinzufügen2Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysRückblick – 2D-ArraysMatrix-Addition & SubtraktionJagged Arrays3D-Arrays und mehrGängige 2D-Array-MusterRückblick – Alles über Arrays5Sets Teil 1
Was ist ein Set?Iterieren über SetsEin Element hinzufügenEin Element entfernenPrüfen, ob ein Element existiertGröße und Is EmptyCopy und ClearZusammenfassung - Grundlagen von Sets8Arrays: Interessante Themen
Array-DestrukturierungSpread-Syntax in ArraysSparse ArraysWiederholung – Arrays Workshop3JSON Teil 1
Was ist JSON?Prüfen, ob Key existiertObjektmethodenDer Spread-Operator Teil 1Der Spread-Operator Teil 2Keys entfernenWiederholung – JSON-Keys manipulieren