2017-08-07 196 views
0

好吧我有以下情况。我需要将此for-in循环转换为for循环或forEach。我已经尝试了几个不同的例子,但似乎无法得到代码追加到页面。 for-in循环对于我需要编写的代码将起作用,但不允许。for-in循环到for循环或forEach

这是可变

var work = { 
     "jobs": [{ 

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

示例这是我要工作的代码。目前在一个for-in循环中,但需要它进入for或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

你的样品代码无效JSON。你确定它是正确的吗?另外,请记住将来在你的问题中标记**语言**;我在这个问题中添加了JavaScript和jQuery标签:) –

+0

Seconding @ObsidianAge - 另外,我刚刚尝试清理您的代码块,JavaScript中也存在语法问题。我建议为你的编辑器添加一个linter,它会帮助你在浏览器出现问题之前发现简单的语法问题。 –

+0

“*我需要转换这个for-in循环[...] [它适用于我,但]它是不允许的。”*“ - 为什么?什么不允许它? – Bergi

回答

1

看起来你将有工作内部人员对象阵列,虽然你的例子是失踪的作业阵列右方括号,如果你有更多比它更清晰数组中的一个条目。

如果有一个数据结构是这样的:

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

您可以使用基于事实的工作阵列将具有从零开始的连续整数键一个简单的for循环:

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

好的,工作。谢谢 –

+0

@ChadAndersen - 很高兴您找到了一个可行的解决方案 - 请记住标记您选择的答案,以便海报得到功劳,而且这篇文章的访问者很快就会找到适合您的解决方案。 –