1
votes

Pousser les valeurs dans le tableau pour qu'elles correspondent à un format spécifique

J'ai une API qui me donne des valeurs que j'essaye d'intégrer à mon tableau. Mon tableau est structuré comme ceci

for(let i = 0; i < roles.roles.length; i++) {
  this.rolesArr.push([ { label: , value: '1' }])
}

Les données que je reçois sont comme ceci

{1: "System Admin", 2: "Internal Account Manager", 3: "CAT Manager", 4: "HR Admin", 5: "HR Manager", 6: "HR Recruiter", 7: "Candidate", 8: "Operations administrator"}

Comment puis-je le pousser vers le tableau pour qu'il corresponde au structure?

J'essaye mais je suis coincé

this.rolesArr = [
  { label: 'Admin', value: '1' },
  { label: 'Manager', value: '2' },
  { label: 'Recruiter', value: '3' },
  { label: 'Operational', value: '4' }
];


2 commentaires

Postez votre essai et tout le monde publiera de nombreuses alternatives.


production attendue?


3 Réponses :


3
votes

Vous pouvez utiliser l'objet .entries pour obtenir une paire clé-valeur sous forme de tableau, puis utilisez Array # map pour générer votre tableau.

this.rolesArr.push(...res)

Pour ajouter ces valeurs dans un tableau existant, utilisez Répartissez la syntaxe avec Méthode Array # push .

let data = {1: "System Admin", 2: "Internal Account Manager", 3: "CAT Manager", 4: "HR Admin", 5: "HR Manager", 6: "HR Recruiter", 7: "Candidate", 8: "Operations administrator"};

let res = Object.entries(data).map(([value, label])=>({ label, value }))

console.log(res)


0 commentaires

1
votes

Vous pouvez utiliser la fonction Object.entries pour obtenir le libellé et la valeur, puis avec la fonction réduire construire la sortie souhaitée.

.as-console-wrapper { max-height: 100% !important; top: 0; }
let obj = {  1: "System Admin",  2: "Internal Account Manager",  3: "CAT Manager",  4: "HR Admin",  5: "HR Manager",  6: "HR Recruiter",  7: "Candidate",  8: "Operations administrator"},
    result = Object.entries(obj).reduce((a, [label, value]) => a.concat({label, value}), []);

console.log(result);


0 commentaires

1
votes

Il suffit de résoudre votre problème en corrigeant le code fourni afin que vous puissiez identifier ce que vous avez mal fait.

var data = { 1: "System Admin", 2: "Internal Account Manager", 3: "CAT Manager", 4: "HR Admin", 5: "HR Manager", 6: "HR Recruiter", 7: "Candidate", 8: "Operations administrator" };
    var entries = Object.entries(data);
    var rolesArr = [];
    for (var i = 0; i < entries.length; i++) {
        this.rolesArr.push({ label: entries[0][1], value: entries[0][0] })
    }
    console.log(this.rolesArr);


0 commentaires