Pb d'initialisation d'un tableau ds une boucle for [Résolu]

Signaler
Messages postés
1
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
19 août 2005
-
Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012
-
Bonjour à tous,

Voici mon souci :
je lance une méthode "init" qui doit remplir mon tableau à plusieurs dimension d'une valeur aléatoire.
Tout à l'air de fonctionner à l'affectation, mais à l'affichage je me rends compte que tout le tableau est rempli de la même dernière valeur tirée au hasard... ?!
Je ne vois pas où est l'erreur ?
Est-ce un bug ?

Merci pour votre aide.
Thierry
voici le code (testez le dans une page web) :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<SCRIPT TYPE="text/javascript">
var profondeur=new Array();
var longueur=new Array();
var largeur=new Array();
var tableauMonde=new Array();

function init()
{
//intialisation des tableaux
profondeur=[0,0];
longueur=[profondeur,profondeur,profondeur,profondeur,profondeur];
largeur=[longueur,longueur,longueur,longueur,longueur];
for(i=0;i<5;i++){
for(j=0;j<5;j++){
largeur[i][j][0]=calculHasard();
document.write("index :"+i,j+" valeur : "+largeur[i][j][0]+"
");
}
}
document.write("----------"+"
");
affichage();
}

function calculHasard()
{
hasard=Math.random();
return hasard;
}

function affichage()
{
for(i=0;i<5;i++){
for(j=0;j<5;j++){
document.write("index :"+i,j+" valeur : "+largeur[i][j][0]+"
");
}
}
}
</script>
<title>test javascript</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>


[javascript:init() init]


</html>

1 réponse

Messages postés
575
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
23 octobre 2012

Voilà ta fonction :

function init()
{
//intialisation des tableaux
for(i=0;i<5;i++){
largeur[i] = new Array();
for(j=0;j<5;j++){
largeur[i][j]=calculHasard();
document.write("index :"+i,j+" valeur : "+largeur[i][j]+"
");
}
}
document.write("----------"+"
");
affichage();
}

Demandes lui de créer un sous-tableau pour chaque i au lieu de lui filler un tableau comme tu le fesais, j'ai jamais vu cette methode pour des taleaux à 2 dimensions...

Avec la methode précédente tu écrasais ta derniére valeur (les tableaux en js sont des objets, donc l'affectation se fait avec des pointeurs ...)

aKheNAtHoN