2017-08-07 285 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 - 很高興您找到了一個可行的解決方案 - 請記住標記您選擇的答案,以便海報得到功勞,而且這篇文章的訪問者很快就會找到適合您的解決方案。 –