Convertir un string en nom de variable ? (parseJSON)

Convertir un string en nom de variable ? (parseJSON) - Javascript/Node.js - Programmation

Marsh Posté le 04-07-2015 à 02:49:29    

Bonjour tout le monde !
 
Apres avoir chercher pendant plusieurs heures, je m'en remets à vous pour m'aider dans mon probleme... Merci d'avance!
 
var obj = jQuery.parseJSON( '{ "name0": "John",  "name1": "Lenon" }' );
 
Grâce à une boucle for, j'aimerais creer un tableau qui contiendrai "John" et "Lenon"...
 
var tableau = Array();
 
for(j=0; j<2; j++){
        var test = "name"+j;
    tableau.push(obj.test);              
}

Reply

Marsh Posté le 04-07-2015 à 02:49:29   

Reply

Marsh Posté le 04-07-2015 à 08:19:20    

for(var key in tableau){
    var value = tableau[key];
    //key vaudra name0, name1, ...
    //value vaudra john, lenon, ...
}    

 

ou, plus propre https://api.jquery.com/each/


Message édité par flo850 le 04-07-2015 à 08:20:35

---------------

Reply

Marsh Posté le 05-07-2015 à 01:58:33    

Merci d'avoir prit du temps pour me repondre!
 
Lorsque je fais comme çà :
 
for(j=0; j<2; j++){  
        var test = "name"+j;  
    tableau.push(obj.test);              
}
 
Mon tableau est vide...
 
Alors que si je fais comme çà:
 
for(j=0; j<2; j++){  
    tableau.push(obj.name0);              
}
 
Mon tableau contient john, john!

Reply

Marsh Posté le 05-07-2015 à 01:59:47    

Du coup le code tu m'as passé ne me sert pour l'instant pas à grand chose vu que tableau est vide... :??:

Reply

Marsh Posté le 05-07-2015 à 10:21:35    

c'est assez logique qu'il ne te serve pas à grand chose, vu que tu ne l'utilise pas  
 
A noter que obj.test cherche la propriété nommée test de obj, comme obj['test'] . obj[test] fait plutôt ce que tu veux faire


---------------

Reply

Marsh Posté le 05-07-2015 à 20:24:38    

Je ne savais pas que obj['test'] revenait à la meme chose que obj.test!! Grace à cette nouvelle notation que je viens d'apprendre grâce à toi tout fonctionne parfaitement maintenant! :D  
 
Merci à toi flo!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed