Utilitaire de debugage de tableau multidimentionnel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 450 fois - Téléchargée 28 fois

Contenu du snippet

Bon c'est pas très compliquer et mais lorsque j'ai eu besoin de modifier de multiple manière mon tableau multidimentionnel je me suis programmé un petit utilitaire me permettant de voir ou en était rendu ma variable tableau.

Dans mon cas j'en avais besoin pour vérifier ma variable tableau qui contenait l'oganigramme d'un site. (Module de gestion de site dynamique PHP/Javascript) Mais bon je mégare un peu de mon sujet.Vous l'utiliserai comme bon il vous semblera... :)

Source / Exemple :


/***** CODE ******/
function debug(){
	var contenu = "DEBUT ARRAY \n";
	for(var x=0;x<orga_array.length;x++){
		if(IsArray(orga_array[x])){
			for(var y=0;y<orga_array[x].length;y++){
				if(IsArray(orga_array[x][y])){
					for(var z=0;z<orga_array[x][y].length;z++){
						contenu += '..........orga_array[' + x + '][' + y + '][' + z + '] = ' + orga_array[x][y][z] + "\n";
					}
				}else{
					contenu += '....orga_array[' + x + '][' + y + '] = ' + orga_array[x][y] + "\n";				
				}
			}
			
		}else{
			contenu += 'orga_array[' + x + '] = ' + orga_array[x] + "\n";
		}
	}
	contenu += "FIN ARRAY \n";
	alert(contenu);
}

function IsArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

/***** EXEMPLE DE RESULTAT ***/

Conclusion :


Fonctionnement: il suffit de stocker votre tableau multidimentionnel dans le tableau orga_array et d'exécuter la function sur un bouton. à vous de voir.

A voir également

Ajouter un commentaire Commentaires
Messages postés
81
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2007
1
Merci bien pour ta nouvelle version sans limitation de niveau.

C vrai que j'aurais pu le faire de cette maniere dès le debut.. mais c'est simplement que je ne me suis aps casser la tete plsu qu'il faut et je lai fait seulement pour les 3 niveau que javais besoin.

Sur ce ++ et bon codage :)
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

J'ai fait une nouvelle version du script.

function debug(array){
if(debug.caller!=debug) {
contenu = "DEBUT ARRAY \n";
}
var indexParent = debug.arguments.length==2?debug.arguments[1]:"";
for(var x=0;x<array.length;x++)
if(IsArray(array[x]))
debug(array[x],(indexParent+"["+x+"]"));
else
contenu +indexParent.replace(/./g,'.') + 'array' + indexParent + '[' + x + '] ' + array[x] + "\n";
if (!indexParent) {
contenu += "FIN ARRAY \n";
alert(contenu);
}
}


A+, Ghislain
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut josh666,

Ton idée est bonne mais pour que le script soit utilisable dans tous les cas, je te sugère d'utiliser la récursion pour ne pas limiter l'affichage a 3 niveaux.

La fonction :

function debug(array){
if(debug.caller!=debug) {
contenu = "DEBUT ARRAY \n";
indexParent="";
stringNiveau = "";
}
for(var x=0;x<array.length;x++) {
if(IsArray(array[x])) {
var copindex = indexParent;
indexParent+="["+x+"]";
stringNiveau +="..";
debug(array[x]);
indexParent = copindex;
stringNiveau = stringNiveau.substr(0,stringNiveau.length-2);
}
else {
contenu +stringNiveau + 'array' + indexParent + '[' + x + '] ' + array[x] + "\n";
}
}
if (indexParent=="") {
contenu += "FIN ARRAY \n";
alert(contenu);
}
}

Un exemple d'utilisation :

orga_array = new Array(1,788,32,4,3,4,32);
orga_array[2] = new Array(2,45674,34,5467,35,346);
orga_array[2][1] = new Array(67,34,7,32,78,2,556,7,12);
orga_array[2][1][2] = new Array(987,45,43,456,456,3465,34636,242);
orga_array[2][1][2][2] = new Array(87,789,7897,89,7975,54);
orga_array[2][1][2][2][0] = new Array(123,3213,2,21,1,31,31,3);
orga_array[2][1][2][2][0][4] = new Array(6776,7,6,756,575);
orga_array[3] = new Array(13,23,123);
debug(orga_array)


A+, Ghislain

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.