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 :

Copier tableaux 2 dimensions


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 28
    Par défaut Copier tableaux 2 dimensions
    Bonjour, je souhaite copier un tableau a 2 dimensions. J'arrive a copier un tableaux simple avec une boucle pour mais là je bloque complètement.
    Mon tableaux contient des coordonnées x,y.

    Merci

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (var x=0; x<tab.length; x++) {
      for (var y=0; y<tab[x].length; y++) {
         newtab[x][y] = tab[x][y];
      }
    }
    A+JYT

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 28
    Par défaut
    Merci pour votre réponse mais je n'y arrive toujours pas. Voici un extrait de mon code :

    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    var cTron = Class.create();
     
    	cTron.prototype = {	
    	   // constructeur
    	   initialize: function(nom, config) {
    			this.pseudo = nom;
    			this.cfg = config;
    			this.dir;
    			this.newdir;
    			this.tron=[];
    	   },
    	   getTron: function() {
    	      return this.tron;
    	   },
    	   setTron: function(tab) {
    		for (var x=0; x<tab.length; x++) {
    		  for (var y=0; y<tab[x].length; y++) {
    			 this.tron[x][y] = tab[x][y];
    		  }
    		}
    	   }
    	};
     
    var tron1 = new cTron('Joueur1',"a");
    var x = 12, y = 22; 
    	leTab=[
                [x, y],
                [--x, y],
                [--x, y],
                [--x, y]
            ];
    tron1.setTron(leTab)

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    En passant vite fait, une fonction de copie de tableau à N dimensions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // FONCTION : copie le tableau courant par valeur (et non pas deux références au même élément)
    // RETOUR : copie conforme du tableau courant (taille, indices, valeurs) 
    Array.prototype.cloner = function() {
       var clone = new Array();
       for (var i = 0; i < this.length; ++i) {
          if (("pop" in this[i]) && ("join" in this[i])) clone[i] = this[i].cloner();
          else clone[i] = this[i];
       }
       return clone;
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 28
    Par défaut
    Bonjour, merci pour ta réponse.
    Pourrais tu expliquer un peu plus le code stp car en l'état actuel de mes connaissances je ne peut pas l'utiliser.

    Merci

  6. #6
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    On peut faire plus simple. En fait pour les tableaux à N dimensions, il faut déclarer chaque nouvelle dimension comme un nouveau tableau.
    Donc, adapté à ton code, suffit de faire :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for ( x=0; x<tab.length; x++) {
      for ( y=0; y<tab[x].length; y++) {
        if (!this.tron[x]) this.tron[x] = []; 
        this.tron[x][y] = tab[x][y];
      }
    }

  7. #7
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    attention quand même, au cas où tu puisses avoir des objets dans tes sous-tableaux, (ce que j'ignore) : ils seront copiés par référence et non par valeur : mauvaises surprises possibles ^^

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/03/2006, 17h48
  2. [Tableaux] mémoriser un tableaux à n dimension
    Par Benat64 dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2006, 16h43
  3. [Tableaux] Gerer des tableaux à deux dimensions
    Par FrankOVD dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2005, 15h20
  4. Tableaux à plusieurs dimensions
    Par Diabolik dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/12/2003, 12h15
  5. [langage] erreurs utilisation tableaux 2 dimensions
    Par drosof dans le forum Langage
    Réponses: 11
    Dernier message: 01/07/2003, 11h44

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