1
votes

Objet Javascript avec paires valeur / clé, comment séparer chaque paire en tant qu'objet individuel?

J'ai un objet javascript avec des paires clé-valeur. Je veux séparer chaque paire en tant qu'objet individuel et le pousser dans un tableau, comment faire?

[{v1 : 'k1'}, {v2 : 'k2'}, {v3 : 'k3'}]

Voici ma sortie attendue:

 var obj = new Object();
 obj = {
      v1 : 'k1',
      v2 : 'k2',
      v3 : 'k3'
    }

    a =[];

Object.entries(obj).forEach(
  ([key, value]) => {
    a.push({key : value});
  });
console.log(a);


1 commentaires

je veux ceci comme sortie: [{v1: 'k1'}, {v2: 'k2'}, {v3: 'k3'}]


3 Réponses :


1
votes

var obj =  { v1 : 'k1', v2 : 'k2', v3 : 'k3' }

var result = []
for(var i in obj) result.push([i, obj[i]])


console.log(result)


0 commentaires

2
votes

Vous l'avez presque compris. Pour créer une propriété dynamique à partir d'une variable (elle s'appelle Noms de propriétés calculés ), vous devez ajouter [] autour de la clé . Sinon, il crée simplement un objet avec juste "key" comme key:

const obj = {v1:'k1',v2:'k2',v3:'k3'}
,a = Object.entries(obj).map(([key, value]) => ({[key] : value}));

console.log(a);

ou, beaucoup plus simple en utilisant map:

const obj = {
  v1: 'k1',
  v2: 'k2',
  v3: 'k3'
},
a = [];

Object.entries(obj).forEach(
  ([key, value]) => {
    a.push({[key] : value});
  });
console.log(a);


0 commentaires

1
votes

Une façon plus fonctionnelle d’aborder cela serait de mappez sur les entrées d'objet pour produire un nouveau tableau d'objets.

var obj =  { v1 : 'k1', v2 : 'k2', v3 : 'k3' }

const out  = Object.entries(obj).map(([k, v]) => ({ [k]: v }));

console.log(out);


0 commentaires