Ok, je me trompe un peu ici et j'ai déjà perdu une heure avec ça alors espérons que l'un de vous puisse m'aider.
var a = ['left','top'],
x = [];
for(i=0;i<a.length;i++) {
x.Push({
a[i] : 0
});
}
Comment puis-je appliquer une valeur à chacune des clés du tableau var a
?
Vous pouvez voir ma tentative ratée, mais j'espère que cela vous donnera un aperçu de ce que j'essaie de réaliser.
Vous devez utiliser la notation entre crochets:
var obj = {};
obj[a[i]] = 0;
x.Push(obj);
Le résultat sera:
x = [{left: 0}, {top: 0}];
Peut-être qu'au lieu d'un tableau d'objets, vous voulez juste un objet avec deux propriétés:
var x = {};
et
x[a[i]] = 0;
Cela se traduira par x = {left: 0, top: 0}
.
Vous pouvez utiliser:
Pour créer un tableau d'objets:
var source = ['left', 'top'];
const result = source.map(arrValue => ({[arrValue]: 0}));
Démo:
var source = ['left', 'top'];
const result = source.map(value => ({[value]: 0}));
console.log(result);
Ou si vous voulez créer un seul objet à partir de valeurs de tableaux:
var source = ['left', 'top'];
const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
Démo:
var source = ['left', 'top'];
const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});
console.log(result);