Création de variables dans une boucle... Comment faire ?

Résolu/Fermé
pilooFR
Messages postés
20
Date d'inscription
samedi 5 mai 2012
Statut
Membre
Dernière intervention
19 avril 2015
- 27 mars 2014 à 21:33
pilooFR
Messages postés
20
Date d'inscription
samedi 5 mai 2012
Statut
Membre
Dernière intervention
19 avril 2015
- 29 mars 2014 à 12:56
Bonjour

Je débute en Javascript et je souhaiterais créer plusieurs structures (pas sûr du nom en JS...) dans une boucle.
var nomPB = ['a', 'b', 'c', 'd', 'e'] /*Tableau*/
for(var p=1; p<=8; p++){
var nomPB[p] = {x : c, y : l}; /*Structure que je voudrais créer avec comme nom : a,b,c,...*/ } 
(Ce code est un peu brouillon mais j'ai essayé de mettre les éléments principaux de mon problème)
Donc voilà ce code ne marche bien évidemment pas et je cherche une solution pour que var nomPB[0] deviennent a, nomPB[1] --> b , etc...
Voilà, si vous avez une solution je suis tout ouïe ;)
Merci de votre attention
Cordialement

pilooFR

1 réponse

cyril1982
Messages postés
110
Date d'inscription
vendredi 7 mars 2014
Statut
Membre
Dernière intervention
19 septembre 2018
11
27 mars 2014 à 22:24
Bonjour,

Si j'ai bien compris, tu veux que a,b, ... soient les clés de ton tableau ?
Si oui :
var keys= ['a', 'b', 'c', 'd', 'e'] /*Tableau*/
for(var p=0; p<=keys.length; p++){
var  
var nomPB[keys[p]] = {x : c, y : l};
} 
1
pilooFR
Messages postés
20
Date d'inscription
samedi 5 mai 2012
Statut
Membre
Dernière intervention
19 avril 2015

27 mars 2014 à 23:00
Tout d'abord merci pour votre aide ! :)
Je souhaite que mes pièces d'échecs est chacune leur coordonnées x, y assignées lors de l'initialisation. Et que je puisse les modifier facilement par la suite.
(je n'arrive pas à adapter votre code au mien j'ai comme message d'erreur : "Unexpected token [ ", je continu de chercher pour trouver le problème...)
0
cyril1982
Messages postés
110
Date d'inscription
vendredi 7 mars 2014
Statut
Membre
Dernière intervention
19 septembre 2018
11
28 mars 2014 à 11:02
Il y avait quelques erreurs de syntaxes dans mon code :

var keys= ['a', 'b', 'c', 'd', 'e']; /*Tableau*/
for(var p=0; p<=keys.length; p++){
var nomPB[keys[p]] = {x : c, y : l};
}
0
pilooFR
Messages postés
20
Date d'inscription
samedi 5 mai 2012
Statut
Membre
Dernière intervention
19 avril 2015

28 mars 2014 à 12:33
J'en avais déjà pris compte. ;)
Mais comment atteindre par exemple la coordonnée x de a dans ce cas ?
0
cyril1982
Messages postés
110
Date d'inscription
vendredi 7 mars 2014
Statut
Membre
Dernière intervention
19 septembre 2018
11
28 mars 2014 à 13:36
nomPB['a'].x
0
Utilisateur anonyme
28 mars 2014 à 13:59
Bonjour

À mon humble avis et après essais, il reste une erreur importante dans le code.
En fait, il ne faut pas déclarer de variable dans la boucle : il faut déclarer un tableau avant, et faire une simple affectation dans la boucle.
De plus, le test de fin de boucle doit être fait avec <, pas <=. Pour éviter toute ambiguïté, autant utiliser un 'in'
Tu récupères la coordonnée x de a avec nomPB.a.x ou nomPB['a']['x'] ou plusieurs autres variantes

var keys= ['a', 'b', 'c', 'd', 'e']; /*Tableau*/
var nomPB = new Array;
for(var p in keys){
  nomPB[keys[p]] = {x : c, y : l};
}
alert(nomPB.a.x);
0