2017-08-07 3 views
0

Ok J'ai le scénario suivant. J'ai besoin de convertir cette boucle for-in en une boucle for ou forEach. J'ai essayé quelques exemples différents mais je n'arrive pas à obtenir le code à ajouter à la page. La boucle for-in fonctionnera cependant pour le code que j'ai besoin d'écrire, ce n'est pas autorisé.boucle for-in à pour loop ou forEach

Voici un exemple de variable

var work = { 
     "jobs": [{ 

       "employer": "Java", 
       "title": "Script", 
       "dates": "2017", 
       "description": "description", 
      } 
     } 

Voici le code que je dois travailler. Actuellement dans une boucle for-in, mais en a besoin dans une boucle for ou forEach.

function displayWork() { 
    for (job in work.jobs) { 
     //create new div for work experience 
     $("#workExperience").append(HTMLworkStart); 
     //concat employer and title 
     var formattedEmployer = HTMLworkEmployer.replace("%data%", 
      work.jobs[job].employer); 
     var formattedTitle = HTMLworkTitle.replace("%data%", work.jobs[job].title); 
     var formattedEmployerTitle = formattedEmployer + formattedTitle; 
     $(".work-entry:last").append(formattedEmployerTitle); 

     var formattedDates = HTMLworkDates.replace("%data%", work.jobs[job].dates); 
     $(".work-entry:last").append(formattedDates); 
     var formattedDescription = HTMLworkDescription.replace("%data%", 
      work.jobs[job].description); 
     $(".work-entry:last").append(formattedDescription); 
    }); 
} 

displayWork(); 
+2

Votre échantillon le code n'est pas valide JSON. Êtes-vous sûr que c'est correct? Aussi, n'oubliez pas de marquer la ** langue ** de vos questions à l'avenir; J'ai ajouté des balises JavaScript et jQuery à cette question :) –

+0

En appuyant sur @ObsidianAge - en outre, je suis allé à travers pour essayer de nettoyer vos blocs de code et il y a aussi un problème de syntaxe dans le JavaScript. Je vous recommande d'obtenir un linter pour votre éditeur - il vous aidera à repérer les problèmes de syntaxe simples avant qu'ils ne deviennent un problème dans le navigateur. –

+0

"* J'ai besoin de convertir cette boucle for-in [...] [Cela fonctionne pour moi, mais] ce n'est pas autorisé. *" - Pourquoi? Qu'est-ce qui ne le permet pas? – Bergi

Répondre

1

Il semble que vous aurez un tableau des emplois à l'intérieur du travail objet, bien que votre exemple est manquant le support carré de fermeture pour le tableau des emplois, et il pourrait être plus clair si vous aviez plus de une entrée dans le tableau.

Compte tenu d'une structure de données comme ceci:

var work = { 
    jobs: [ 
    { 
     employer: "example1" 
    }, 
    { 
     employer: "example2" 
    }, 
    { 
     employer: "example3" 
    } 
    ] 
} 

Vous pouvez utiliser une simple boucle basée sur le fait que le tableau d'emplois aura des touches consécutives entières à partir de zéro:

for (var i = 0; i < work.jobs.length; i++) { 
    // do stuff with current job in work.jobs[i] 
    var current_employer = work.jobs[i].employer; 
} 
+0

Ok ça a marché. Merci –

+0

@ChadAndersen - content que vous ayez trouvé une solution de travail - n'oubliez pas de marquer la réponse que vous avez choisie pour que le poster soit crédité et les visiteurs de ce post sont rapidement redirigés vers la solution qui vous convient. –