【发布时间】:2016-07-12 23:58:26
【问题描述】:
我想显示组成球队的球员。 所以我创建了两个对象:一个给玩家,一个给团队。
var equipes = [
{'id_equipe' : 1 , 'id_joueur1' : 1 , 'id_joueur2' : 2 , 'id_joueur3' : 3, 'id_joueur4' : 4, 'id_joueur5' : 5, 'id_joueur6' : 6, 'id_poule' : 1, 'nbr_joueurs' : 1,'nbr_joueurs' : 6, 'nom' : "Dark vador", 'points' : 50},
{'id_equipe' : 2 , 'id_joueur1' : 7 , 'id_joueur2' : 8 , 'id_joueur3' : 9, 'id_joueur4' : 10, 'id_joueur5' : 11, 'id_joueur6' : 12, 'id_poule' : 1, 'nbr_joueurs' : 6, 'nom' : "CEM", 'points' : 100},
{'id_equipe' : 3 , 'id_joueur1' : 13 , 'id_joueur2' : 14 , 'id_joueur3' : 15, 'id_joueur4' : 16, 'id_joueur5' : 17, 'id_joueur6' : 18, 'id_poule' : 1, 'nbr_joueurs' : 6, 'nom' : "Test", 'points' : 25}
];
// I stock with localstorage
window.localStorage.setItem('equipes', JSON.stringify(equipes));
var joueurs = [
{'id_joueurs' : 1 , 'prenom' : "Sam" , 'nom' : "Mignot" , 'capitaine' : true},
{'id_joueurs' : 2 , 'prenom' : "Jasmine" , 'nom' : "Test" , 'capitaine' : true},
{'id_joueurs' : 3 , 'prenom' : "Kevin" , 'nom' : "Test2" , 'capitaine' : false},
{'id_joueurs' : 4 , 'prenom' : "Thierry" , 'nom' : "Blabla" , 'capitaine' : false},
{'id_joueurs' : 5 , 'prenom' : "Olivier" , 'nom' : "Blablabla" , 'capitaine' : false},
{'id_joueurs' : 6 , 'prenom' : "Loic" , 'nom' : "Bla" , 'capitaine' : false},
{'id_joueurs' : 8 , 'prenom' : "Sam" , 'nom' : "Mignot" , 'capitaine' : false},
{'id_joueurs' : 9 , 'prenom' : "Sam" , 'nom' : "Mignot" , 'capitaine' : false},
{'id_joueurs' : 10 , 'prenom' : "Sam" , 'nom' : "Mignot" , 'capitaine' : false},
{'id_joueurs' : 11 , 'prenom' : "Sam" , 'nom' : "Mignot" , 'capitaine' : false},
{'id_joueurs' : 12 , 'prenom' : "Sam" , 'nom' : "Mignot" , 'capitaine' : false},
{'id_joueurs' : 13 , 'prenom' : "Sam" , 'nom' : "Mignot" , 'capitaine' : false}
];
// Same thing, I stock with localstorage
window.localStorage.setItem('joueurs', JSON.stringify(joueurs));
现在我想知道每支球队的球员姓名(感谢'id_joueur1',id_joueur2',...)。所以我创建了这个函数:
function getJoueursEquipe () {
var equipes = JSON.parse(window.localStorage.getItem("equipes")), // I recuperate the team's storage
nbr_joueurs = equipes.nbr_joueurs, // how many player in the team, it can change
joueurs = JSON.parse(window.localStorage.getItem("joueurs")), // I recuperate the player's storage
joueursEquipe = null,
id_joueur_equipe = null;
// Here I want to recover id_joueur1, id_joueur2, id_joueur3 ... until nbr_joueurs
for (var j = 1; j <= nbr_joueurs; j++) {
id_joueur_equipe = "id_joueur"+j;
console.log(id_joueur_equipe);
console.log(equipes.id_joueur_equipe1); //This is my problem
// It returns "undefined
}
我想恢复这些元素:
- equipes.id_joueur1
- equipes.id_joueur2
- equipes.id_joueur3
...
我尝试了不同的语法(如console.log(equipes.id_joueur+j)但没有成功!
我错过了什么?我的想法是错误的?有什么线索吗? 在此先感谢:)
【问题讨论】:
-
为什么你的装备对象中没有 jueur_ids 属性?我认为这会更容易:)但是如果你想要这样你在最后犯了一个错误:console.log(equipes[id_joueur_equipe])
-
是的,事实上它可能更容易^^一天结束,我没有明确的想法,但是使用 console.log(equipes[id_joueur_equipe]) ...它工作得很好!谢谢!
-
事实上我认为它不应该工作......:p因为equipes是一个数组......所以你必须遍历这个数组的每个项目然后console.log(equipes [j] [id_joueur_equipe])。你在这里开始犯了一个错误:nbr_joueurs =equipes.nbr_joueurs 不应该工作。你必须循环装备
-
或者只是在 getJoueursEquipe 函数中添加一个equipeId 参数。然后像这样构建一个 equipe 变量:var equipe = equipe[equipeId]。最后,您使用此变量,getJoueursEquipe 返回一个包含玩家 ID 的数组!但是是的 ^^ 你应该使用 joueur_ids 属性 ;)
标签: javascript arrays object properties local-storage