2
votes

Comment convertir enum en un tableau clé, valeur en typographie?

[
  {
    number:'1',
    word:'HELLO'
  },
  {
    number:'2',
    word:'BYE'
  },
  {
    number:'3',
    word:'TATA'
  }
]

3 commentaires

Qu'est-ce que {'1', 'HELLO'} ? Ce n'est ni JavaScript valide ni TypeScript valide.


Pourquoi vous attendez-vous à {number: '2', word: 'TATA'} ?


@jcalz évidemment une faute de frappe


6 Réponses :


1
votes

Vous pouvez utiliser Object .entries et mappez -le au format souhaité

var enums = {
  '1': 'HELLO',
  '2' : 'BYE',
  '3' : 'TATA'
  };
  
let op = Object.entries(enums).map(([key, value]) => ({ number:key, word:value }))

console.log(op)


6 commentaires

comment savez-vous ce résultat attendu?


@brk ceci est spécifié dans la question mate. Je veux pouvoir le convertir en un tableau qui ressemble à ceci,


Merci d'avoir répondu. Cela me donne le résultat [{"1": "HELLO"}, {"2": "BY"}, {"3": "TATA"}] J'en ai besoin pour être [{"1", "HELLO" }, {"2", "BY"}, {"3", "TATA"}], au lieu de:


@ user7434041 pouvez-vous décrire le type de données que vous attendez? {"1", "HELLO"} n'est pas du javascript ou du type script valide. il ressemble presque à un tuple python


@ user7434041 dans l'objet, vous avez besoin d'une paire clé / valeur, dans ce format -> clé: valeur .


Oups désolé mon mal, modification de la sortie attendue dans la question



0
votes

Besoin de créer un objet de type Map puis d'obtenir la valeur en utilisant get méthode comme outData.get ("1")

Map(3) {"1" => "HELLO", "2" => "BYE", "3" => "TATA"}

Pour obtenir des données, utilisez outData.get ("clé")

Maintenant, les données de sortie ressembleront à-

XXX

0 commentaires

2
votes

Une autre alternative consiste à utiliser un for ... in pour parcourir les clés enums et construire le tableau d'objets souhaité.

.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
var enums = {
  '1': 'HELLO',
  '2' : 'BYE',
  '3' : 'TATA'
};

let res = [];

for (key in enums)
{
    res.push({number: key, word: enums[key]});    
}

console.log(res);


0 commentaires

4
votes

Vous pouvez mapper les entrées avec propriétés abrégées .

.as-console-wrapper { max-height: 100% !important; top: 0; }
var enums = { 1: 'HELLO', 2: 'BYE', 3: 'TATA' },
    objects = Object.entries(enums).map(([number, word]) => ({ number, word }));

console.log(objects);


0 commentaires

1
votes

vous pouvez utiliser Object.entries ( ) avec foreach et poussez-le vers un tableau comme celui-ci

​​

var enums = {
    '1': 'HELLO',
    '2' : 'BYE',
    '3' : 'TATA'
    };

var enumArray = []
Object.entries(enums).forEach(([key, value]) => enumArray.push({number : key, word : value}));

console.log(enumArray);


0 commentaires

1
votes

Vous pouvez utiliser Object.keys et map

var obj = {
  '1': 'HELLO',
  '2' : 'BYE',
  '3' : 'TATA'
};


const result = Object.keys(obj).map(el => {
  return {
    number: el,
    word: obj[el]
  }
})

console.log(result)


0 commentaires