[JavaScript] variables gloables non reconnues

Nymphomaniaque Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -  
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

le résultat c'est que sum1, sum2, sum3 et sum4 se voient comme non définies ! Pourtant, le tableau qui les contient est global !! Qui peut me débloquer ?
<script type="text/javascript">
function f(x,sum,y)
{
 sum=y; sum*=x;
 if(x>1) 
 	{
	 x--;f(x,t[5-x],1);
	}
 else x++;
 document.write(sum1+sum2+sum3+sum4+'<br>');
}
z=4;
var t=new Array();
for (i=2;i<5;i++) t[i]="sum"+i;
f(z,'sum1',1);
</script>


A voir également:

4 réponses

prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
tu as bien un tableau global "t", mais vu que ton for commence à i=2 ses deux premiers index ont une valeur "undefined": [undefined, undefined, "sum2", "sum3", "sum4"].

dans ta fonction f, tu ne peux donc pas appeler les variables sumx car elles n'existent pas.
0
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Tu peux juste m'expliquer la finalité de ce code ? il me laisse perplexe
0
Nymphomaniaque Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   4
 
je m'entraîne sur javascript, c'est un petit exercice de décryptage de chaîne de caractère qui se résout par des boucles simples, j'ai voulu le résoude par une fonction récursive.
Merci pour ton aide prosthetihks.
0
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
J'peux jouer moi aussi ? il est ou l'énoncé ? =)
0
Nymphomaniaque Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   4
 
Tu peux jouer ! à condition, tu trouves le truc qui marche pas ! car j'ai rempli tout le tableau et toujours pas reconnues !
Bon, l'énoncé : soit à deviner une chaîne de caractère composée comme suit,

(xyz)(#)(xyz)(#)....
où xyz sont des caractères alphanumériques et # est un caractère spécial.
La vérification doit s'effectuer par bloc de 7 caractères !
0
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Merci ! et on fait valider ou le résultat ?
0
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
ton "t" ne contient pas de variables, il contient juste des string.
0
Nymphomaniaque Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   4
 
Vous disposez d'une chaîne de caractères générée par un rand, et que vous devriez deviner !
Le programme doit boucler et vérifier le résultat pas quand lui semble mais après avoir mis un bloc de (xyz)(#)(xyz) : c'est une contrainte imposée par l'exercice !
Je peux le résoudre en imbriquant plusieurs for mais je préfère la méthode récursive.
0
Nymphomaniaque Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   4
 
Bah, je simplifie encore le problème, je veux afficher d1 qui doit être 3

function f(d) 
{ 
 d=3; alert (d1); 
} 

var d1; 
f(d1); 


ce programme ne le permet pas. Des idées ?
0
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Le passage de variable par référence est un peu tordu en javascript.

<script>
function f(d){ 
  d.value=3; alert (d1.value); 
} 

var d1 = {}; 
f(d1); 

</script>
0