IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Cr�er un tableau 2D grace � deux boucles for


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    146
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 146
    Par d�faut Cr�er un tableau 2D grace � deux boucles for
    Bonjour,
    je me souviens plus comment on fait pour cr�er un tableau 2D en utilisant deux Boucles for, car je veux le remplir d'une valeur unique dans chaque case lors de sa cr�ation.

    je voulais aussi que les max colonne et ligne soient donn�s en parametres � la fonction.

    Je sais qu'il faut cr�er un tableau pour chaque ligne puis un tableau pour chaque colonne il me semble.
    Mais je voulais donner un nom � ce tableau et que la fonction donne par return le tableau 2D.

    Plusieurs pages sur google n'ont pas pu me renseigner.

  2. #2
    Membre Expert
    Avatar de Archim�de
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par d�faut
    Pour un tableau deux D
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //exemple de tableau deux D (4x4)
        let mat=new Array(4);
        //remplissage des éléments de la matrice :
        let val=-1;
        for (let i=0; i<=3;i++){
            mat[i]=new Array(4);
     
            for (let j = 0; j<=3; j++){
                val++;
                mat[i][j] =val ;
            }
        }
        console.log(mat[0][0]);  //0
        console.log(mat[0][1]);  //1
        console.log(mat[1][0]);  //4
        console.log(mat[3][3]);  //15

  3. #3
    Membre confirm�
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    146
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 146
    Par d�faut
    G�nial ! c'est ce que je cherchais !
    Me reste plus qu'� l'adapter

    EDIT : SUPER !

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Surf2D(colonne,ligne){
        var surface=[ligne];   // <---- Corrig� 
        for(lig=0;lig<ligne;lig++){
            surface[lig]=[ligne];
            for(col=0;col<colonne;col++){
                surface[lig][col]=0;
            }
    
        }
        return surface;
    }


    R�sultat en faisant console.log(Surf2D):
    (4) [Array(3), Array(3), Array(3), Array(3)]
    0
    :
    (3) [0, 0, 0]
    1
    :
    (3) [0, 0, 0]
    2
    :
    (3) [0, 0, 0]
    3
    :
    (3) [0, 0, 0]
    length
    :
    4

  4. #4
    Expert confirm� Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par d�faut
    Tu peux te passer de boucles en indiquant la taille � la cr�ation de l'objet Array puis en utilisant la m�thode Array.prototype.fill pour le remplir:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    // un tableau 8x4 remplit avec des 3
    let myArr = new Array(8).fill(new Array(4).fill(3));
    Mieux encore, si ton tableau 2d ne doit contenir que des entiers positifs entre 0 et 255, tu peux remplacer les objets Array contenus par des objets Uint8Array (qui prennent moins de place en m�moire et qui ont le bon go�t de s'initialiser � 0 d'eux m�mes):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    let myArr = new Array(8).fill(new Uint8Array(4));
    ps: ton pr�c�dent code est faux, regarde attentivement ce qu'a propos� Archim�de. Autre chose, let, const et var, bref, les d�clarations, c'est pas juste pour la d�co.

    https://developer.mozilla.org/fr/doc...ed_collections

  5. #5
    Membre confirm�
    Homme Profil pro
    sans
    Inscrit en
    Mai 2023
    Messages
    146
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : sans

    Informations forums :
    Inscription : Mai 2023
    Messages : 146
    Par d�faut
    Merci !
    c'est g�nial cette m�thode, court et pratique.
    Je peux �tre amen� � mettre un chiffre n�gatif dans une case, est-ce qu'il existe la m�me chose acceptant les n�gatifs ?

    C'est mon code dont tu parlais en disant qu'il �tait faux ? Il fonctionne bien pourtant et pas d'erreurs sur la console js.

    Je vais me renseigner sur les uint array

    EDIT : aah j'ai compris, � cause de surface qui n'a pas de "let" :/

    Si je met un let est-ce que le return renverra surface ?

    Pour le moment j'ai mis "var surface="

    Merci pour le lien MDN !

    Je viens de voir qu'il y a une autre erreur � la premi�re ligne "surface="
    le tableau est d�clar� comme contenant une valeur "ligne" alors qu'il devrait �tre d�clar� comme un tableau de longueur "ligne".
    La correction est : var surface= Array(ligne);.

    Mais avec ce code, la console ne me montre pas les valeurs contenues:

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Surf2D(colonne,ligne){
        var surface=Array(ligne);    
        for(lig=0;lig<ligne;lig++){
            surface[lig]=Array(ligne);
            for(col=0;col<colonne;col++){
                surface[lig][col]=0;
            }
     
        }
        return surface;
    }


    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    // Resultat console du return :
     
    ƒ Surf2D(colonne,ligne){
        var surface=Array(ligne);    
        for(lig=0;lig<ligne;lig++){
            surface[lig]=Array(ligne);
            for(col=0;col<colonne;col++){
                surface[lig][col]=0;…


    Par contre ta m�thode rapide fonctionne bien et montre les valeurs dans la console :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    let my = new Array(4).fill(new Array(6).fill(0));
     
    console.log(my);
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    Array(4)
    0 : (6) [0, 0, 0, 0, 0, 0]
    1 : (6) [0, 0, 0, 0, 0, 0]
    2 : (6) [0, 0, 0, 0, 0, 0]
    3 : (6) [0, 0, 0, 0, 0, 0]
     
    length : 4

  6. #6
    Membre chevronn� Avatar de 01001111
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2009
    Messages
    319
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 319
    Par d�faut
    Salut Nouby,
    c'est normal que tu aies une fonction en retour si tu fais un console.log directement sur la fonction sans l'�valuer.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    function test() {
         return 'ok';
    }
    console.log(test); // f { return 'ok' }
    console.log(test()); // ok

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Deux boucles for + un effet de bord ?
    Par Teufboy dans le forum Langage
    R�ponses: 2
    Dernier message: 21/12/2007, 08h08
  2. R�ponses: 3
    Dernier message: 24/05/2007, 17h56
  3. R�ponses: 9
    Dernier message: 15/09/2006, 19h08
  4. Batch - Deux boucle For imbriqu�es plus un FC
    Par Lorponos dans le forum Windows
    R�ponses: 17
    Dernier message: 27/07/2006, 14h58
  5. comment quitter deux boucles for?
    Par davmaster62 dans le forum G�n�ral Python
    R�ponses: 2
    Dernier message: 08/03/2006, 00h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo