Bonjour,

Tout est dans le titre. Ça fait longtemps que je fait du js, mais là j'ai du loupé une subtilité...

Cela me semble logique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 var indexTest = "1";
 
    var test = [];
    test[ indexTest ] = "VALEUR";
 
    var debug1 = test[ indexTest ];
    // Converti l'objet en chaine JSON
    var jsonString =  JSON.stringify(test);  
    // Converti la chaîne json en objet
    var test2 = JSON.parse(jsonString);
    var debug2 = test2[ indexTest ];
 
    $('#content').html('debug1='+debug1+' debug2='+debug2);
Cela affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
debug1=VALEUR debug2=VALEUR
Pour moi parfaitement logique !

Mais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
var indexTest = "a";
 
    var test = [];
    test[ indexTest ] = "VALEUR";
 
    var debug1 = test[ indexTest ];
    // Converti l'objet en chaine JSON
    var jsonString =  JSON.stringify(test);  
    // Converti la chaîne json en objet
    var test2 = JSON.parse(jsonString);
    var debug2 = test2[ indexTest ];
 
    alert('debug1='+debug1+' debug2='+debug2);
Cela affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
debug1=VALEUR debug2=undefined
Pourquoi le passage en JSON me détruit mon objet si l'index est un string??? Dès le JSON.stringify, il est effacé.