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);
3 Réponses :
var obj = { v1 : 'k1', v2 : 'k2', v3 : 'k3' }
var result = []
for(var i in obj) result.push([i, obj[i]])
console.log(result)
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);
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);
je veux ceci comme sortie: [{v1: 'k1'}, {v2: 'k2'}, {v3: 'k3'}]