はじめに
この実験では、JavaScript を使って整数をローマ数字表記に変換する方法を探っていきます。整数値を対応するローマ数字にマッピングするためのルックアップテーブルを使用し、reduce メソッドを使って値を反復処理し、入力された整数のローマ数字表記を構築します。この実験の最後まで進めると、JavaScript で配列と文字列操作を行い、複雑なタスクを実行する方法について、より深い理解が得られるでしょう。
整数をローマ数字に変換する
整数をローマ数字表記に変換するには、以下の手順に従ってください。
ターミナル/SSH を開き、
nodeと入力してコーディングの練習を開始します。toRomanNumeral()関数は、1から3999までの値(両端を含む)を受け付けます。(ローマ数字の値,整数) の形式の 2 値配列を含むルックアップテーブルを作成します。
Array.prototype.reduce()を使用して、lookup内の値をループし、numをその値で繰り返し割ります。String.prototype.repeat()を使用して、ローマ数字表記をアキュムレータに追加します。
以下は toRomanNumeral() 関数のコードです。
const toRomanNumeral = (num) => {
const lookup = [
["M", 1000],
["CM", 900],
["D", 500],
["CD", 400],
["C", 100],
["XC", 90],
["L", 50],
["XL", 40],
["X", 10],
["IX", 9],
["V", 5],
["IV", 4],
["I", 1]
];
return lookup.reduce((acc, [k, v]) => {
acc += k.repeat(Math.floor(num / v));
num = num % v;
return acc;
}, "");
};
以下の例で関数をテストすることができます。
toRomanNumeral(3); // 'III'
toRomanNumeral(11); // 'XI'
toRomanNumeral(1998); // 'MCMXCVIII'
まとめ
おめでとうございます!整数をローマ数字に変換する実験を完了しました。LabEx でさらに多くの実験を行い、スキルを向上させることができます。