JavaScriptで生年月日からライフパスナンバーを求める方法
ライフパスナンバーとは
ライフパスナンバーとは、数秘術においてその人の人生のテーマや資質を表すとされる数字です。生年月日の各桁の数字をすべて足し合わせ、一桁になるまで計算を繰り返すことで求められます。
課題
ここでは、「yyyy-mm-dd」形式の日付文字列を受け取り、その生年月日に対応するライフパスナンバーを返すJavaScript関数を作成します。
たとえば、日付が「1999-06-10」の場合、計算は次のようになります。
year(年) : 1 + 9 + 9 + 9 = 28 → 2 + 8 = 10 → 1 + 0 = 1 month(月) : 0 + 6 = 6 day(日) : 1 + 0 = 1 result(結果) : 1 + 6 + 1 = 8
コード例
以下がその実装コードです。
const date = '1999-06-10';
const findLifePath = (date = '') => {
// 配列の合計が一桁になるまで再帰的に足し合わせる補助関数
const sum = (arr = []) => {
if(arr.length === 1){
return +arr[0]
};
let total = arr.reduce((acc, val) => acc + val);
if (total < 10){
return total
};
return sum(String(total).split("").map(Number));
};
// 日付を「-」で分割し、年・月・日に分ける
let [year, month, day] = date.split("-")
year = sum(String(year).split("").map(Number));
month = sum(String(month).split("").map(Number));
day = sum(String(day).split("").map(Number));
// 年・月・日のそれぞれの合計をさらに足し合わせる
return sum([year,month,day]);
};
console.log(findLifePath(date));コードの解説
このコードの処理の流れは以下の通りです。
- まずsum関数を定義します。これは引数として受け取った数字の配列の合計が一桁になるまで、再帰的に各桁を足し合わせる補助関数です。
- 入力された日付文字列を「-」で分割し、年・月・日に分けます。
- それぞれの部分を1桁ずつに分解して数値化し、sum関数で一桁に還元します。
- 最後に、年・月・日の結果をまとめてsum関数に渡し、最終的なライフパスナンバーを取得します。
出力結果
コンソールには次の出力が表示されます。
8
このように、シンプルな再帰処理を組み合わせるだけで、任意の生年月日からライフパスナンバーを簡単に算出できます。
-
JavaScriptで数値が三角数かどうかを判定する方法
三角数(Triangular Number)とは? 三角数とは、点を正三角形の形に敷き詰めたときに現れる数のことです。n番目の三角数は「1からnまでの自然数の合計」として表され、次の公式で求められます。 Tn = n(n+1) / 2 具体的な三角数は 1, 3, 6, 10, 15, 21, 28 … と続きます。例えば 10 は、各辺に4個の点を配置した正三角形を構成できるため、三角数です。 問題 数値を引数として受け取り、その数値が三角数であれば true を、そうでなければ false を返すJavaScript関数を実装します。 判定の考え方 n(n+1)/2 = num となる正
-
JavaScriptで生年月日から星座を判定する方法
この記事では、Dateオブジェクトを受け取り、その日付に対応する12星座を返すJavaScript関数の実装方法を解説します。誕生日から星座を自動的に判定したい場合に役立つ、シンプルで実用的なテクニックです。 問題 日付オブジェクトを引数として受け取るJavaScript関数を作成します。関数は、受け取った日付(誕生日)に該当する星座を返す必要があります。 コード例 以下が実際のコードです。 const date = new Date(); // 2021年4月2日に実行した場合の例 const findSign = (date) => { // 各月の星座が切り替わる「境