質問: document.form_signin.school.options.length; for(var i=1; i 最終学歴* 中学 高校 大学 行ってない 学校名: -選択- *必須項目です ``` ``` {"juniorhighschool":{ "1":"大阪市立桜宮中学校", "2":"大阪市立高倉中学校", "3":"大阪市立友渕中学校", "4":"大阪市立都島中学校", "5":"大阪市立淀川中学校", "6":"大阪市立下福島中学校", "7":"大阪市立野田中学校", "8":"大阪市立八阪中学校", "9":"大阪市立春日出中学校", "10":"大阪市立此花中学校", "11":"大阪市立梅香中学校", "12":"大阪市立西中学校", "13":"大阪市立花乃井中学校 }, "highschool":{ "1":"大阪市立都島工業高等学校", "2":"大阪市立都島第二工業高等学校", "3":"大阪市立東高等学校", "4":"大阪市立桜宮高等学校", "5":"大阪府立西野田工科高等学校", "6":"大阪市立咲くやこの花高等学校", "7":"大阪市立西高等学校", "8":"大阪府立市岡高等学校", "9":"大阪府立港高等学校", "10":"大阪府立泉尾高等学校", }, "university":{ "1":"大阪大学", "2":"大阪教育大学", "3":"大阪市立大学", "4":"大阪府立大学", "5":"藍野大学", "6":"LCA大学院大学", "7":"追手門学院大学", "8":"大阪青山大学", "9":"大阪医科大学", "10":"大阪大谷大学" } } ```
回答: 上手くいかないとは、どう上手くいかないのでしょうか? パッと見て思ったのは、ループインデックスは0で初期化すべきということと `i <= list.length` ではなく `i < list.length` ではないかと思いました。 ``` for (var i = 0; i < list.length; i++) { document.form_signin.school.options[i] = new Option(list[i], list[i]); }; ``` ### 追記 highschoolは配列ではなく、オブジェクトですね。 以下のような感じでやるとどうでしょうか? ``` var values = Object.values(list); for(var i = 0; i < values.length; i++) { document.form_signin.school.options[i] = new Option(values[i], values[i]); } とか for(var value of Object.values(list)) { document.form_signin.school.options[i] = new Option(value, value); } ```