Partage
  • Partager sur Facebook
  • Partager sur Twitter

recuperer une valeur avec le constructeur Object

Sujet résolu
23 novembre 2021 à 17:21:21

Je cherche a être éclaircis sur cet algorithme que j'ai du mal a appréhender. 

function convertToRoman(num) {
    const numerals = {
      1: 'I',
      4: 'IV',
      5: 'V',
      9: 'IX',
      10: 'X',
      40: 'XL',
      50: 'L',
      90: 'XC',
      100: 'C',
      400: 'CD',
      500: 'D',
      900: 'CM',
      1000: 'M',
    };
  
    let romanized = "";
    const decimalKeys = Object.keys(numerals).reverse();
    console.log(Object.values(decimalKeys));
    console.log(Object.keys(decimalKeys));
    decimalKeys.forEach(key => {
      while (key <= num){
        romanized += numerals[key];
        num -= key;
      }
    });
  
   return romanized;
  }
  
  let result = convertToRoman(54);

  console.log("result = " + result);

Comment définir la const numerals ? 

c'est une variable de type Object contenant plusieurs variable de type différents. 
Ou un tableau de forme clé : valeur.
Ou un objet de forme clé:valeur:valeur ? ( je sais pas si ça existe ) ???

Je me pose cette question car je n'arrive pas faire un console.log pour récupérer les lettres. 

j'arrive a logger l'objet pour récupérer un tableau contenant les clé [0, 1, 2, 3 ..] avec 

console.log(Object.keys(decimalKeys));

Puis a récuperer la valeur sous forme de nombre [1000, 900, 500 .... ] avec 

console.log(Object.values(decimalKeys));

Mais je n'arrive pas a savoir quoi définir dans le console.log pour récuperer le tableau [M, CM, D ... ]

Savez vous comment je peut faire ? 


-
Edité par Tortue_Ninja 23 novembre 2021 à 17:22:03

  • Partager sur Facebook
  • Partager sur Twitter

Seul on va plus vite, ensemble on va plus loin. 'KawaBunga'

23 novembre 2021 à 17:36:39

Bonjour,

numerals est un objet dont les clefs sont des nombres. decimalKeys est un tableau des clefs de numerals, il ne contient que des nombres. Pour avoir les lettres, il faut que tu prennes les valeurs de numerals : Object.values(numerals) 

  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2021 à 22:04:15

Ok merci 
Donc 
console.log(Object.keys(decimalKeys)); 
est un tableau dont les clé sont des index. ( 0, 1, 2 )
------
ET
console.log(Object.keys(numerals));

est un objet et ses clé sont des nombres ou des chaine de caractère ? 

Je pose la question car le output de ma console renvoi 

[
  '1',    '4',   '5',
  '9',    '10',  '40',
  '50',   '90',  '100',
  '400',  '500', '900',
  '1000'
]
( avec des '['1', '2' ...] au lieu des [1, 2 ...] ) avec des apostrophe ou des quote autour des nombre
je ne sais plus comment on apelle ça '') 

Pour résumer quand tu dis 
numerals est un objet dont les clefs sont des nombres

Pour etre plus précis on pourrais dire numerals est un objet dont les clé sont des "nom" soit des chaines de caractère sous forme de nombre. 

PS comment tu as fais pour mettre un bout de code sur la ligne ? 



-
Edité par Tortue_Ninja 3 décembre 2021 à 22:17:33

  • Partager sur Facebook
  • Partager sur Twitter

Seul on va plus vite, ensemble on va plus loin. 'KawaBunga'