web-dev-qa-db-fra.com

Valeur de la clé JavaScript Array Push

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.

26
daryl

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}

46
Felix Kling

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);

1
Mohammad Usman