現在、javascriptの学習で スプレットシートからタイムを取得し、条件付きで出力をする処理を行っております。
条件として、(例)A列に〇〇〇〇年〇〇月〇〇日を格納し
B列に各日付のベストタイムを格納しかつ配列にし年、月、日が合致したら、そのタイムの各月で最もタイムが早いものを各月のベストラップとして配列から取り出し、スプレットシートのセルに書き込むようにしております。
そこで上記に記載したような処理をif else文で作成をしたのですが、コードが膨大になってしまい
処理が重くなってしまってしまいました。
下記が今回のコードになります。
if (2021 == y && 1 == m) { inputSheet.getRange(2, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 2 == m) { inputSheet.getRange(3, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 3 == m) { inputSheet.getRange(4, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 4 == m) { inputSheet.getRange(5, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 5 == m) { inputSheet.getRange(6, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 6 == m) { inputSheet.getRange(7, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 7 == m) { inputSheet.getRange(8, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 8 == m) { inputSheet.getRange(9, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 9 == m) { inputSheet.getRange(10, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 10 == m) { inputSheet.getRange(11, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 11 == m) { inputSheet.getRange(12, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2021 == y && 12 == m) { inputSheet.getRange(13, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 1 == m) { inputSheet.getRange(18, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 2 == m) { inputSheet.getRange(19, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 3 == m) { inputSheet.getRange(20, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 4 == m) { inputSheet.getRange(21, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 5 == m) { inputSheet.getRange(22, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 6 == m) { inputSheet.getRange(23, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 7 == m) { inputSheet.getRange(24, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 8 == m) { inputSheet.getRange(25, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 9 == m) { inputSheet.getRange(26, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 10 == m) { inputSheet.getRange(27, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 11 == m) { inputSheet.getRange(28, 8).setValue(Math.min.apply(null, maleTimeArray)); } else if (2022 == y && 12 == m) { inputSheet.getRange(29, 8).setValue(Math.min.apply(null, maleTimeArray)); }
※ yは年 mは月です。
if (2021 == y && 1 == m)は2021年がy(年と同じ)かつ1月がm(月と同じ)だったら
私はまだjavascript初学者でどのようにしたらもっと処理を軽くし管理がしやすくなるか
お時間のある方がいらっしゃいましたら、ご助言を頂ければ幸いです。
何卒宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー