Цикл 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;
}
Другие вопросы по тегам