2017-07-15 4 views
-2

je besoin d'un objet personnalisé pour un membre du personnel si je cela dans staff.js:Puis-je stocker un tableau de types de données personnalisées dans un objet personnalisé en javascript

function Staff(name, shouldBeRemoved, officeName, dateHired) { 
     this.name = name; 
     this.shouldBeRemoved = shouldBeRemoved; 
     this.officeName = officeName; 
     this.dateHired = dateHired; 
    } 

J'ai aussi un objet personnalisé pour un bureau à office.js:

function Office(name, shouldBeRemoved, staffMembers) { 
     this.name = name; 
     this.shouldBeRemoved = shouldBeRemoved; 
     this.staffMembers = staffMembers; 
    } 

Je veux utiliser la propriété StaffMembers être un tableau d'objets du personnel à l'intérieur d'un bureau.

Mais lorsque je tente de pousser un nouvel objet personnel dans un tableau StaffMembers dans mon objet Office, rien ne se passe:

staff = new Staff(name, false, officeSelected, d.toDateString()); 
     for (i=0; i<officeArray.length; i++) { 
      if (officeArray[i].name == officeSelected) { 
       officeArray[i].staffMembers.push(staff); 
      } 
     } 
+0

Que voulez-vous dire, "rien ne se passe"? – Pointy

+0

La ligne 'officeArray [i] .staffMembers.push (staff);' ne s'exécute pas. et rien ne court après. Si j'essaie d'ouvrir une fenêtre d'alerte après cela, elle ne s'ouvrira pas. –

+0

Avez-vous un violon js? Que dit votre console? Avez-vous des erreurs ou est-ce que staffMembers est nul? – JonLuca

Répondre

0

Ma suggestion serait de commencer à utiliser Tapuscrit, la raison étant que les types de données et les classes avoir une image claire.

staff = new Staff(name, false, officeSelected, d.toDateString()); 
    for (i=0; i<officeArray.length; i++) { 
     if (officeArray[i].name == officeSelected) { 
      officeArray[i].staffMembers.push(staff); 
     } 
    } 

ici u doit vérifier officeArray [i] .name === staff.officeSelected