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
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
A+JYT
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]; } }
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)
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; }
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
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]; } }
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 ^^
Partager