好的我有以下情况。我需要将这个for-in循环转换为for循环或forEach。我尝试了一些不同的示例,但似乎无法将代码附加到页面上。但是for-in循环对于我需要编写的代码是有效的,不允许这样做。
这是一个示例变量
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();
答案 0 :(得分:1)
看起来你的工作对象中有一个数组作业,尽管你的例子缺少了jobs数组的结束方括号,它可能是如果阵列中有多个条目,则更清楚。
给出这样的数据结构:
var work = {
jobs: [
{
employer: "example1"
},
{
employer: "example2"
},
{
employer: "example3"
}
]
}
您可以使用一个简单的for循环,因为jobs数组将具有从零开始的连续整数键:
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;
}