webentwicklung-frage-antwort-db.com.de

JavaScript Array Push-Schlüsselwert

Ok, ich mache hier ein bisschen falsch und ich habe schon eine Stunde damit verschwendet, also kann mir einer von euch helfen.

var a = ['left','top'],
    x = [];

for(i=0;i<a.length;i++) {
    x.Push({
        a[i] : 0
    });
}

Wie kann ich einen Wert auf jede der Tasten im var a-Array legen?

Sie sehen meinen fehlgeschlagenen Versuch, aber hoffentlich gibt Ihnen das einen Einblick in das, was ich erreichen möchte.

26
daryl

Sie müssen Klammer-Notation verwenden:

var obj = {};
obj[a[i]] = 0;
x.Push(obj);

Das Ergebnis wird sein:

x = [{left: 0}, {top: 0}];

Statt eines Arrays von Objekten möchten Sie vielleicht nur ein Objekt mit zwei Eigenschaften:

var x = {};

und

x[a[i]] = 0;

Dies führt zu x = {left: 0, top: 0}

46
Felix Kling

Sie können verwenden:


So erstellen Sie ein Array von Objekten:

var source = ['left', 'top'];
const result = source.map(arrValue => ({[arrValue]: 0}));

Demo:

var source = ['left', 'top'];

const result = source.map(value => ({[value]: 0}));

console.log(result);


Oder wenn Sie ein einzelnes Objekt aus den Werten von Arrays erstellen möchten:

var source = ['left', 'top'];
const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});

Demo:

var source = ['left', 'top'];

const result = source.reduce((obj, arrValue) => (obj[arrValue] = 0, obj), {});

console.log(result);

1
Mohammad Usman