Modèles courants de tableaux 2D
Fait partie de la section Logique & Flux du Journey JavaScript de Coddy — leçon 13 sur 65.
Certains modèles apparaissent souvent lors de la manipulation de tableaux 2D. Reconnaître ces modèles peut vous aider à résoudre des problèmes plus efficacement. Voici quelques modèles courants :
Parcours diagonal
L'accès aux éléments où l'indice de ligne est égal à l'indice de colonne (matrix[i][i]) vous donne la diagonale principale. Pour l'anti-diagonale, la somme des indices de ligne et de colonne est égale à la taille du tableau moins 1 (matrix[i][size - 1 - i]).
Par exemple :
1 2 3
4 5 6
7 8 9Parcourir la diagonale principale (matrix[i][i]) : 1, 5, 9
Parcourir l'anti-diagonale (matrix[i][size - 1 - i]) : 3, 5, 7
Parcours de la bordure
Pour parcourir les éléments de la bordure, vous maintenez un index constant (0 ou size - 1) tout en itérant sur l'autre.
Pour accéder à la bordure supérieure, vous itérez sur les colonnes avec l'index de ligne fixé à 0.
Par exemple :
1 2 3 4
5 6 7 8
9 10 11 12éléments de bordure : 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (tous sauf 6 et 7)
Défi
FacileCréez une fonction nommée printPatterns qui prend un tableau 2D carré d'entiers (matrix) en entrée et affiche les motifs suivants :
- Diagonale principale : Affichez tous les éléments où l'indice de ligne est égal à l'indice de colonne.
- Anti-diagonale : Affichez tous les éléments où la somme des indices de ligne et de colonne est égale à la taille de la matrice moins 1.
- Bordures : Affichez les éléments des bordures supérieure, inférieure, gauche et droite de la matrice.
La sortie devrait ressembler à ceci :
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 16Aide-mémoire
Modèles courants de parcours de tableaux 2D :
Parcours diagonal
Diagonale principale : matrix[i][i] (l'indice de ligne est égal à l'indice de colonne)
Anti-diagonale : matrix[i][size - 1 - i] (la somme des indices de ligne et de colonne est égale à size - 1)
1 2 3
4 5 6
7 8 9Diagonale principale : 1, 5, 9
Anti-diagonale : 3, 5, 7
Parcours des bordures
Maintenir un indice constant (0 ou size - 1) tout en itérant sur l'autre :
- Bordure supérieure : indice de ligne = 0, itérer sur les colonnes
- Bordure inférieure : indice de ligne = size - 1, itérer sur les colonnes
- Bordure gauche : indice de colonne = 0, itérer sur les lignes
- Bordure droite : indice de colonne = size - 1, itérer sur les lignes
Essayez vous-même
function printPatterns(matrix) {
let mainDiagonal = []
// À FAIRE : Implémenter
console.log("Main Diagonal:", mainDiagonal.join(" "));
let antiDiagonal = [];
// À FAIRE : Implémenter
console.log("Anti-Diagonal:", antiDiagonal.join(" "));
let topBorder = [];
// À FAIRE : Implémenter
console.log("Top Border:", topBorder.join(" "));
let bottomBorder = [];
// À FAIRE : Implémenter
console.log("Bottom Border:", bottomBorder.join(" "));
let leftBorder = [];
// À FAIRE : Implémenter
console.log("Left Border:", leftBorder.join(" "));
let rightBorder = [];
// À FAIRE : Implémenter
console.log("Right Border:", rightBorder.join(" "));
}
// N'écrivez rien en dehors de la fonctionCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Les chaînes de caractères en profondeur
Fondamentaux des chaînesParcourir les chaînesTemplate LiteralsMéthodes des chaînesRécapitulatif - String Weaver4JSON Partie 2
Itérer sur du JSONJSON imbriquéChaînage optionnel JSONCopie superficielle et profondeRécapitulatif - Magasin de vélosRécapitulatif - Système solaire7Système de gestion de bibliothèque
Présentation du projetAjouter des livres2Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliers (Jagged Arrays)Tableaux 3D et au-delàModèles courants de tableaux 2DRécapitulatif - Tout sur les tableaux3JSON Partie 1
Qu'est-ce qu'un JSON ?Vérifier si une clé existeMéthodes d'objetL'opérateur Spread Partie 1L'opérateur Spread Partie 2Supprimer des clésRécapitulatif - Manipuler les clés JSON