UTILITAIRE DE DEBUGAGE DE TABLEAU MULTIDIMENTIONNEL

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 - 30 août 2005 à 03:30
josh666 Messages postés 81 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 1 octobre 2007 - 31 août 2005 à 20:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33425-utilitaire-de-debugage-de-tableau-multidimentionnel

josh666 Messages postés 81 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 1 octobre 2007 1
31 août 2005 à 20:46
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 :)
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
30 août 2005 à 04:27
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
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
30 août 2005 à 03:30
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
Rejoignez-nous