Цикл for-in для цикла for или forEach
Хорошо, у меня есть следующий сценарий. Мне нужно преобразовать этот цикл 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 ответ
Похоже, у вас будет массив заданий внутри рабочего объекта, хотя в вашем примере отсутствует закрывающая квадратная скобка для массива заданий, и это может быть яснее, если в массиве было более одной записи.
Учитывая структуру данных, как это:
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;
}