Rechercher : dans
Par :

Debuggage JavaScript

Dernière réponse le 24 nov 2003 à 21:12:15 Snake, le 24 nov 2003 à 19:21:57 
 Signaler ce message aux modérateurs

Salut,

J'ai un problème en JavaScript que je n'arrive pas à résoudre. Voici mon code, très simple...

<script language="JavaScript1.3">

// Variables globales ---------------------
var alpha = new Array(2);
var prog = new Array(15,4);
//-----------------------------------------


// Affectation des valeurs ----------------
alpha[0] = " ";
alpha[1] = "I";
prog[0][0] = "q0"; prog[0][1] = "I"; prog[0][2] = " "; prog[0][3] = "q1";
prog[1][0] = "q1"; prog[1][1] = " "; prog[1][2] = ">"; prog[1][3] = "q2";
// la ligne qui pose problème est visiblement la suivante
prog[2][0] = "q2"; prog[2][1] = "I"; prog[2][2] = ">"; prog[2][3] = "q2";
prog[3][0] = "q2"; prog[3][1] = " "; prog[3][2] = ">"; prog[3][3] = "q3";
prog[4][0] = "q3"; prog[4][1] = "I"; prog[4][2] = ">"; prog[4][3] = "q3";
prog[5][0] = "q3"; prog[5][1] = " "; prog[5][2] = "I"; prog[5][3] = "q4";
prog[6][0] = "q4"; prog[6][1] = "I"; prog[6][2] = ">"; prog[6][3] = "q5";
prog[7][0] = "q5"; prog[7][1] = " "; prog[7][2] = "I"; prog[7][3] = "q6";
prog[8][0] = "q6"; prog[8][1] = "I"; prog[8][2] = "<"; prog[8][3] = "q6";
prog[9][0] = "q6"; prog[9][1] = " "; prog[9][2] = "<"; prog[9][3] = "q7";
prog[10][0] = "q7"; prog[10][1] = " "; prog[10][2] = ">"; prog[10][3] = "q9";
prog[11][0] = "q7"; prog[11][1] = "I"; prog[11][2] = "<"; prog[11][3] = "q8";
prog[12][0] = "q8"; prog[12][1] = "I"; prog[12][2] = "<"; prog[12][3] = "q8";
prog[13][0] = "q8"; prog[13][1] = " "; prog[13][2] = ">"; prog[13][3] = "q0";
prog[14][0] = "q9"; prog[14][1] = " "; prog[14][2] = ">"; prog[14][3] = "q10";
//-----------------------------------------

</script>


Là j'ai une erreur qui me dit "'prog.2' a la valeur NULL ou n'est pas un objet". Et là je bloque. Si quelqu'un a une idée pour résoudre le souci...

Merci d'avance,
A+

Meilleures réponses pour « Debuggage JavaScript » dans :
Javascript - Les événements Voir Qu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
YouTube - Vous avez désactivé JavaScript VoirProblème Lorsque vous naviguez sur certains sites, tels que YouTube, ceux-ci affichent le message d'erreur suivant : Vous avez désactivé JavaScript ou bien vous possédez une ancienne version d'Adobe Flash Player. Téléchargez la dernière version...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Introduction au langage Javascript VoirQu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...

1

Marden, le 24 nov 2003 à 20:04:02

En JS, l'instruction :

var prog = new Array(15,4) ;

crée un tableau unidimensionnel à 2 éléments contenant les valeurs 15 et 4.
Dans ton cas, il convient de faire, par exemple :
1ère solution :
var prog = new Array() ;
   for ( i  0 ; i < 15 ; i++ ) {
      prog[i] = new Array() ; // ou new Array(4) ;
   }

puis coder les affectations.
2ème solution :
var prog = new Array() ;
       prog[0]  = new Array("q0","I"," ","q1") ;
       prog[1] = new Array("q1"," ",">","q2") ;
       ..........
       prog[14]  new Array("q9"," ",">","q10") ;

Répondre à Marden

2

PhP, le 24 nov 2003 à 20:17:05

Bsr Snnnnnnnnnnnnaaaaaaaaaaaaake,

tssss, tssss ben vi c'est normal !

Lorsque tu déclares var prog = new Array(15,4); tu ne déclares pas un tableau à 2 dimensions 15x4 mais un tableau avec 2 éléments : 15 et 4
C'est comme si tu écrivais :
var prog = new Array(2);
prog[0]=15;
prog[1]=2;

En fait si tu indiques autre chose qu'un simple chiffre JS affecte directement les valeurs dans un tableau monodimensionnel.

Donc forcement dès que tu utilises un index supérieur à 1 ça plante !

Ze solution :

var prog = new Array(15);
for (i=0; i< prog.length; i++) prog[i]=new Array(4);


En prime une petite fonction super utile que j'ai trouvé dans la doc JavaScript Netscape pour voir le contenu d'un objet (je l'utilise tout le temps) :

function show_props(obj, objName)
{
var result = ""
for (var i in obj)
{
result += objName + "." + i + " = " + obj[i] + "\n"
}
return result
}



Essai
alert(show_props(prog,"prog"));

après tes initialisations tu verras c'est magique pour le débogage !


Heu évite qd même des choses comme :

alert(show_props(document,"document")); ;-)

@+



PhP    [Push the button,Don't push the
.         button,Trip the station,Change the channel]

Répondre à PhP

3

 Snake, le 24 nov 2003 à 21:12:15

Hello,

Super merci, ça marche nickel. Le temps de bouffer et j'ai ma réponse... vive le net ! : )

En fait il me semblait que le new Array(15)(4) ne créait un tableau à 2 éléments qu'en JavaScript1.2, mais pas en 1.1 ni en 1.3.

Je ne sais pas où j'ai vu ça mais ça devait être une connerie.

Bon en tout cas merci.
A+

Répondre à Snake