Menu
Coddy logo textTech

Schemi comuni con array 2D

Fa parte della sezione Logica e flusso del percorso JavaScript di Coddy. Lezione 13 di 65.

Alcuni schemi ricorrono spesso quando si lavora con array 2D. Riconoscere questi schemi può aiutarti a risolvere i problemi in modo più efficiente. Ecco alcuni schemi comuni:

Attraversamento diagonale

Accedendo agli elementi in cui l'indice di riga è uguale all'indice di colonna (matrix[i][i]) ottieni la diagonale principale. Per l'antidiagonale, la somma degli indici di riga e di colonna è uguale alla dimensione dell'array meno 1 (matrix[i][size - 1 - i]).

Ad esempio:

1  2  3
4  5  6
7  8  9

Attraversa la diagonale principale (matrix[i][i]): 1, 5, 9
Attraversa la diagonale secondaria (matrix[i][size - 1 - i]): 3, 5, 7

Attraversamento del bordo

Per attraversare gli elementi del bordo, mantieni un indice costante (0 o size - 1) mentre iteri sull'altro.

Per accedere al bordo superiore, iteri sulle colonne mantenendo fisso a 0 l'indice di riga.

Ad esempio:

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

elementi del bordo: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (tutti tranne 6 e 7)

challenge icon

Sfida

Facile

Crea una funzione denominata printPatterns che accetta in input un array 2D quadrato di numeri interi (matrix) e stampa i seguenti schemi:

  1. Diagonale principale: stampa tutti gli elementi in cui l’indice di riga è uguale all’indice di colonna.
  2. Anti-diagonale: stampa tutti gli elementi in cui la somma degli indici di riga e di colonna è uguale alla dimensione della matrice meno 1.
  3. Bordi: stampa gli elementi dei bordi superiore, inferiore, sinistro e destro della matrice.

L’output dovrebbe apparire così:

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

Provalo tu

function printPatterns(matrix) {
    let mainDiagonal = []
    // TODO: Implementa
    console.log("Main Diagonal:", mainDiagonal.join(" "));
    
    let antiDiagonal = [];
    // TODO: Implementa
    console.log("Anti-Diagonal:", antiDiagonal.join(" "));
    
    let topBorder = [];
    // TODO: Implementa
    console.log("Top Border:", topBorder.join(" "));
    
    let bottomBorder = [];
    // TODO: Implementa
    console.log("Bottom Border:", bottomBorder.join(" "));
    
    let leftBorder = [];
    // TODO: Implementa
    console.log("Left Border:", leftBorder.join(" "));
    
    let rightBorder = [];
    // TODO: Implementa
    console.log("Right Border:", rightBorder.join(" "));
}
// Non scrivere nulla al di fuori della funzione
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore JavaScript online