2016-07-12 37 views
0

Ich möchte Spieler anzeigen, die ein Team bilden. Also erstelle ich zwei Objekte: eins für Spieler, eins für Team.Auflisten bestimmter Eigenschaften eines Objekts Javascript in einer for-Schleife

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)); 

Jetzt möchte ich den Namen des Spielers jedes Team kennen (dank der 'id_joueur1', id_joueur2' , ...). So erzeuge ich diese Funktion:

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 
    } 

ich diese Elemente wiederherstellen möchten:

  • equipes.id_joueur1
  • equipes.id_joueur2
  • equipes.id_joueur3

...

Ich versuche d andere Syntax (wie console.log(equipes.id_joueur+j)) aber ohne Erfolg!

Ich vermisse etwas? Mein Denken ist falsch? Irgendeine Ahnung ? Vielen Dank im Voraus :)

+0

Warum hast du keine joueur_ids-Eigenschaft in deinen equipes-Objekten? Es wäre einfacher, denke ich :) Aber wenn du es so willst, hast du am Ende einen Fehler gemacht: console.log (equipes [id_joueur_equipe]) –

+0

Ja, es könnte tatsächlich einfacher sein ^^ Ende des Tages, ich don hab keine klare idee aber mit console.log (equipes [id_joueur_equipe]) ... es funktioniert einwandfrei! Vielen Dank ! –

+0

Eigentlich sollte es nicht funktionieren Ich denke ...: p Weil equipes ein Array ist ... Also müssen Sie alle Elemente dieses Arrays durchlaufen und dann console.log (equipes [j] [id_joueur_equipe]). Du hast am Anfang hier einen Fehler gemacht: nbr_joueurs = equipes.nbr_joueurs sollte nicht funktionieren. Sie müssen durch Equipes –

Antwort

0

Ich möchte diese Elemente erholen:

equipes.id_joueur1 equipes.id_joueur2 equipes.id_joueur3

Hope this Snippet wird nützlich sein,

var equipes = [// Rest of the objects]; 
// get keys form the equipes object 
var m = Object.keys(equipes[0]); 
// Filter only the require keys 
var _filteredValue = m.filter(function(item){ 
return item !=="id_equipe" && item !== "id_poule" && 
item !== "nbr_joueurs" && item !=="nom" && item !=="points" 
}) 

// Will loop through each object of equipes 
equipes.forEach(function(item){ 
// Will loop through each filtered item 
_filteredValue.forEach(function(itemFilter){ 
    document.write('<pre>'+itemFilter+' -- ' +_item[itemFilter]+'</pre>') 
    }) 

}) 

JSFIDDLE

Verwandte Themen