#短く、簡潔なJavascriptの記述をするためにヒントをください
Javascript初心者です。
OpenWeatherMapを使用した練習サイトを作成しました。
具体的には、
- 現在の天気予報
- 翌日の3時間ごとの天気予報
- 翌々日の3時間ごとの天気予報
をAPIで取得し、作成しました。
結果的に思うようなサイトを作ることはできたのですが、Javascriptが非常に長くなってしまいました。
▽対象サイト
https://webprogblog.xsrv.jp/demo/weather/
##個人的に省略できるんじゃないかと思うところ
翌日の6時、9時、12時、15時、18時の天気予報を取得し、それぞれの天気状態によって条件分岐をしました。
Javascript
1// 特定の時間の天気情報を取得 2const nextWEather_6 = data.list[7].weather[0].main; // 翌日の6時 3const nextWEather_9 = data.list[8].weather[0].main; // 翌日の9時 4const nextWEather_12 = data.list[9].weather[0].main; // 翌日の12時 5const nextWEather_15 = data.list[10].weather[0].main; // 翌日の15時 6const nextWEather_18 = data.list[11].weather[0].main; // 翌日の18時 7 8// 取得した天気によって「天気の画像を」を挿入 9if (nextWEather_6 === "Thunderstorm") { 10 document.getElementById('nextWEather_6').innerHTML = '<img src="asset/img/clouds.png" alt="雷雨">'; 11} else if (nextWEather_6 === "Drizzle") { 12 document.getElementById('nextWEather_6').innerHTML = '<img src="asset/img/rains.png" alt="霧雨">'; 13} else if (nextWEather_6 === "Rain") { 14 document.getElementById('nextWEather_6').innerHTML = '<img src="asset/img/rains.png" alt="雨">'; 15} else if (nextWEather_6 === "Snow") { 16 document.getElementById('nextWEather_6').innerHTML = '<img src="asset/img/snow.png" alt="雪">'; 17} else if (nextWEather_6 === "Atmosphere") { 18 document.getElementById('nextWEather_6').innerHTML = '<img src="asset/img/clouds.png" alt="濃霧">'; 19} else if (nextWEather_6 === "Clear") { 20 document.getElementById('nextWEather_6').innerHTML = '<img src="asset/img/clear.png" alt="晴れ">'; 21} else if (nextWEather_6 === "Clouds") { 22 document.getElementById('nextWEather_6').innerHTML = '<img src="asset/img/clouds.png" alt="曇り">'; 23} else { 24 return false; 25} 26if (nextWEather_9 === "Thunderstorm") { 27 document.getElementById('nextWEather_9').innerHTML = '<img src="asset/img/clouds.png" alt="雷雨">'; 28} else if (nextWEather_9 === "Drizzle") { 29 document.getElementById('nextWEather_9').innerHTML = '<img src="asset/img/rains.png" alt="霧雨">'; 30} else if (nextWEather_9 === "Rain") { 31 document.getElementById('nextWEather_9').innerHTML = '<img src="asset/img/rains.png" alt="雨">'; 32} else if (nextWEather_9 === "Snow") { 33 document.getElementById('nextWEather_9').innerHTML = '<img src="asset/img/snow.png" alt="雪">'; 34} else if (nextWEather_9 === "Atmosphere") { 35 document.getElementById('nextWEather_9').innerHTML = '<img src="asset/img/clouds.png" alt="濃霧">'; 36} else if (nextWEather_9 === "Clear") { 37 document.getElementById('nextWEather_9').innerHTML = '<img src="asset/img/clear.png" alt="晴れ">'; 38} else if (nextWEather_9 === "Clouds") { 39 document.getElementById('nextWEather_9').innerHTML = '<img src="asset/img/clouds.png" alt="曇り">'; 40} else { 41 return false; 42} 43 44・ 45・ 46・ 4712時、15時、18時も同様に記述する。 48翌々日も同様に。
ここの部分があまりにも長く、同じような処理を繰り返しているので、もっと簡単にかける気がするのですが、その術がわかりません。
どのように記述すればもっと短く簡潔に書けるかご教授いただけますでしょうか。
繰り返しとのことですので、FOR文とかを使うんじゃないかと思ってはいるのですが、正直どのように手を付けていいかわかりません……
##コード すべて
すみません、文字数OVERで載せることができなかったので、下記を参照ください。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/23 00:56