JavaScriptで月の番号から四半期を求める方法
問題
1始まりの月の番号(1〜12)を受け取り、その月が属する四半期を返すJavaScript関数を作成する必要があります。
一般的に四半期は以下のように区分されます。
- 第1四半期(Q1):1月〜3月
- 第2四半期(Q2):4月〜6月
- 第3四半期(Q3):7月〜9月
- 第4四半期(Q4):10月〜12月
コード例
以下は、if文を使って実装した基本的なコードです。
const month = 7;
const findQuarter = (month = 1) => {
if (month <= 3) {
return 1;
} else if (month <= 6) {
return 2;
} else if (month <= 9) {
return 3;
} else if (month <= 12) {
return 4;
}
};
console.log(findQuarter(month));出力結果
コンソールには次のように出力されます。7月は第3四半期に属するため、結果は「3」となります。
3
より簡潔な書き方:Math.ceilを活用する
条件分岐を減らしたい場合は、割り算とMath.ceil()を組み合わせることで、1行で四半期を求められます。月の番号を3で割って切り上げると、ちょうど四半期の番号になります。
const findQuarter = (month = 1) => {
return Math.ceil(month / 3);
};
console.log(findQuarter(7)); // 3
console.log(findQuarter(1)); // 1
console.log(findQuarter(12)); // 4まとめ
月から四半期を求める処理は、if文による条件分岐でもMath.ceil(month / 3)のような計算式でも実装できます。コードの可読性や処理速度を重視する場合は、後者のシンプルな方法がおすすめです。
-
JavaScriptでアルファベットの1始まりのインデックスを取得する方法
問題JavaScriptで関数を作成する必要があります。この関数は、小文字の英字アルファベット1文字を受け取り、その文字がアルファベットの中で何番目に位置するかを「1始まり」のインデックスとして返します。例えば、a なら 1、j なら 10 を返すといったイメージです。無効な入力が渡された場合は -1 を返してエラーを通知すると親切です。実装の考え方最もシンプルな方法は、先頭に半角スペースを付けたアルファベット文字列「 abcdefghijklmnopqrstuvwxyz」を基準(レジェンド)として用意することです。こうすることで、スペースが0番目となり、a は1番目、j は10番目というよう
-
【JavaScript】配列の中で左右の合計が等しくなる中央インデックス(ピボットインデックス)を見つける方法
問題数値の配列 arr が与えられたとき、「あるインデックスより左側にあるすべての要素の合計」と「そのインデックスより右側にあるすべての要素の合計」が等しくなる位置(中央インデックス/ピボットインデックス)を求める JavaScript 関数を作成します。該当するインデックスが複数存在する場合は、最初に見つかったものを返し、存在しない場合は -1 を返すのが一般的です。たとえば、次のような入力を考えます。入力const arr = [1, 7, 3, 6, 5, 6];出力const output = 3;出力の解説インデックス 3 の要素は nums[3] = 6 です。この要素の左側にある