Introduction
Dans ce laboratoire (lab), nous allons explorer comment convertir un entier en sa représentation en chiffres romains à l'aide de JavaScript. Nous utiliserons une table de correspondance (lookup table) pour associer les valeurs entières à leurs chiffres romains correspondants, puis nous utiliserons la méthode reduce pour parcourir les valeurs et construire la représentation en chiffres romains de l'entier d'entrée. À la fin de ce laboratoire, vous aurez une compréhension plus approfondie de la manipulation des tableaux et des chaînes de caractères en JavaScript pour effectuer des tâches complexes.
Conversion d'un entier en chiffres romains
Pour convertir un entier en sa représentation en chiffres romains, suivez ces étapes :
Ouvrez le Terminal/SSH et tapez
nodepour commencer à pratiquer la programmation.La fonction
toRomanNumeral()accepte les valeurs comprises entre1et3999(les deux inclus).Créez une table de correspondance (lookup table) contenant des tableaux à 2 valeurs sous la forme (valeur romaine, entier).
Utilisez
Array.prototype.reduce()pour parcourir les valeurs danslookupet diviser répétitivementnumpar la valeur.Utilisez
String.prototype.repeat()pour ajouter la représentation en chiffres romains à l'accumulateur.
Voici le code de la fonction 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;
}, "");
};
Vous pouvez tester la fonction avec ces exemples :
toRomanNumeral(3); // 'III'
toRomanNumeral(11); // 'XI'
toRomanNumeral(1998); // 'MCMXCVIII'
Résumé
Félicitations! Vous avez terminé le laboratoire (lab) sur la conversion d'entiers en chiffres romains. Vous pouvez pratiquer davantage de laboratoires sur LabEx pour améliorer vos compétences.