Bonjour,

J'essaye de retourner un tableau, mais dans la console de debug, cela m'indique undefined.
Cà doit être une erreur toute bête mais je ne vois pas comment la corriger.

J'ai donc une fonction récursive qui me recherche dans un tableau un noeud et dés qu'il le trouve il me le retourne.
Fonction de recherche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function RechercheNoeud(indicateurParent, id){
    if(indicateurParent){
        $.each(indicateurParent['indicateurSuivant'], function (key, enfant){
            if(enfant['id'] === id){
console.debug(enfant);
                return enfant;
            } else {
                RechercheNoeud(enfant, id);
            }
        });
 
    } else return null;
}
Mon Debug m'indique bien qu'il a trouvé mon noeud.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
({id:1, libelle:"Indicateur 1 n1", valeur:2, poids:1, evolution:0, indicateurSuivant:[{id:12, libelle:"Indicateur 4 n2", valeur:1, poids:1, evolution:null, indicateurSuivant:[]}, {id:32, libelle:"Indicateur 5 n2", valeur:3, poids:1, evolution:null, indicateurSuivant:[{id:33, libelle:"Indicateur 6 n3", valeur:3, poids:2, evolution:null, indicateurSuivant:[]}, {id:34, libelle:"Indicateur 7 n3", valeur:3, poids:1, evolution:null, indicateurSuivant:[]}]}]})
Fonction qui appelle RechercheNoeud
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function DescendreIndicateur(key, idParent){
    alert(idParent);
    var idSecteur=tabStatistique[key]['id'];
console.debug(tabStatistique[key]);
    var indicateurParent = RechercheNoeud(tabStatistique[key], idParent);
console.debug(indicateurParent);
    if(indicateurParent !== null){
        $("#tab2_" + idSecteur).remove();
        var newElementTab2=ChargementDivContenu(indicateurParent, idSecteur, key, 0, false);    
 
        $("#div4_" + idSecteur).append(newElementTab2);
    }
}
Le premier debug m'affiche mon tableau que je recherche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 ({id:1, libelle:"Action sociale", indicateurSuivant:[{id:1, libelle:"Indicateur 1 n1", valeur:2, poids:1, evolution:0, indicateurSuivant:[{id:12, libelle:"Indicateur 4 n2", valeur:1, poids:1, evolution:null, indicateurSuivant:[]}, {id:32, libelle:"Indicateur 5 n2", valeur:3, poids:1, evolution:null, indicateurSuivant:[{id:33, libelle:"Indicateur 6 n3", valeur:3, poids:2, evolution:null, indicateurSuivant:[]}, {id:34, libelle:"Indicateur 7 n3", valeur:3, poids:1, evolution:null, indicateurSuivant:[]}]}]}, {id:27, libelle:"Indicateur 1 n2", valeur:1, poids:1, evolution:1, indicateurSuivant:[]}, {id:28, libelle:"Indicateur 1 n3", valeur:1, poids:1, evolution:-1, indicateurSuivant:[{id:13, libelle:"Indicateur 3 n2", valeur:1, poids:1, evolution:null, indicateurSuivant:[]}]}, {id:29, libelle:"Indicateur 1 n4", valeur:0, poids:1, evolution:0, indicateurSuivant:[]}, {id:30, libelle:"Indicateur 1 n5", valeur:0, poids:1, evolution:0, indicateurSuivant:[]}, {id:31, libelle:"Indicateur 1 n6", valeur:1, poids:1, evolution:0, indicateurSuivant:[]}]})
Le deuxieme le résultat UNDEFINED

Avez vous une idée svp?