JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

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

このように、シンプルな再帰処理を組み合わせるだけで、任意の生年月日からライフパスナンバーを簡単に算出できます。

  1. 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 となる正

  2. JavaScriptで生年月日から星座を判定する方法

    この記事では、Dateオブジェクトを受け取り、その日付に対応する12星座を返すJavaScript関数の実装方法を解説します。誕生日から星座を自動的に判定したい場合に役立つ、シンプルで実用的なテクニックです。 問題 日付オブジェクトを引数として受け取るJavaScript関数を作成します。関数は、受け取った日付(誕生日)に該当する星座を返す必要があります。 コード例 以下が実際のコードです。 const date = new Date(); // 2021年4月2日に実行した場合の例 const findSign = (date) => { // 各月の星座が切り替わる「境