Bonjour,

J'ai un problème avec un tableau multi-dimensionnel.

Mon tableau est déclaré d'abord dans la partie principale du programme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
var population = 20;
var numGenes = 183;
// déclaration du génome et remplissage par valeurs à zéro
//var genome = new Array();
var genome=new Array(population);
for (var i=0; i <population; i++) {
    genome[i]=new Array(183)
} ;
(Notez l'ancienne manière de le créer qui reste en commentaire).

Ce tableau est rempli de valeurs aléatoires un peu plus loin :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
function init() {
    for (var a = 0; a < population; a++) {
            genome[a] = [];
            for (b = 0 ; b < numGenes; b++) {
                genome[a][b] = Math.random();
            }
    };
};
Jusque là le code fonctionne parfaitement.

PROBLEME : par après, j'essaie de copier ce tableau dans un autre (notez que je passe une partie du code, qui n'a aucun lien avec le tableau dont il est question). Avant même d'en arriver là, je veux simplement afficher le contenu d'une seule dimension via la commande post() :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
    selectedGenome = [];
    //Copie du génome des individus sélectionnés dans le nouveau génome
        for (var a = 0; a < population; a++) {
            post("genome[a] : "+genome[a]+"\n");                 
        };
Ce code plante le logiciel alors que le code suivant fonctionne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
post("genome[a][0] : "+genome[a][0]+"\n")
On dirait que je ne peux plus faire référence à une dimension complète de mon tableau, ni au tableau complet. En effet, le code suivant plante aussi le logiciel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
post("Genome : "+genome+"\n")
Que dois-je changer dans le programme pour que cela fonctionne?
Quels tests puis-je élaborer pour trouver la faille?

Merci d'avance pour toute aide.

Si cela peut s'avérer nécessaire, je précise que j'utilise JavaScript dans un contexte particulier, c'est-à-dire que le script ne tourne pas dans un logiciel de navigation Web mais dans un logiciel de création multimédia appelé Max. Cela étant, le Javascript employé dans Max respecte complètement la norme JS (version 1.5 je crois), seul son D.O.M. est différent, et il me semble d'autre part que pour le code dont il est question ici cela ne change rien.