for-in循环到for循环或forEach

时间:2017-08-07 00:46:14

标签: javascript jquery for-loop foreach for-in-loop

好的我有以下情况。我需要将这个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();

1 个答案:

答案 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;
}