2017-08-07 11 views
0

Ok次のシナリオがあります。私はこのfor-inループをforループまたはforEachに変換する必要があります。私はいくつかの異なる例を試しましたが、コードをページに追加することはできません。しかしfor-inループは書く必要のあるコードでは動作しますが、これは許されません。for-loop to 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にも構文上の問題があります。私はあなたのエディタのリンターを取得することをお勧めします - それはあなたがブラウザで問題になる前に簡単な構文の問題を見つけるのに役立ちます。 –

+0

"*私はfor-inループ[...]に変換する必要があります[それは私にとってはうまくいますが、許可されていません] *" - なぜですか?それを許さないのは何ですか? – Bergi

答えて

1

あなたの例では、ジョブアレイの右角かっこが不足している、とあなたはより多くを持っていた場合、それは明確であるかもしれないが、あなたは、仕事オブジェクト内部ジョブの配列を持つことになりますように見えます配列内の1つのエントリ。あなたが仕事配列は0から始まる連続した整数キーを持っているという事実に基づいてループするための単純なを使用することができます

var work = { 
    jobs: [ 
    { 
     employer: "example1" 
    }, 
    { 
     employer: "example2" 
    }, 
    { 
     employer: "example3" 
    } 
    ] 
} 

:このようなデータ構造を考えると

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 - あなたが実用的な解決策を見つけたらうれしく思います。あなたの選択した回答に印を付けて、ポスターがクレジットを得て、このポストの訪問者がすぐにあなたのために働く解決策を指すようにしてください。 –

関連する問題