UTILITAIRE DE DEBUGAGE DE TABLEAU MULTIDIMENTIONNEL

Signaler
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
-
Messages postés
81
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
1 octobre 2007
-
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

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