1966 Stimmen

Wie kann ich ein Schlüssel/Wert-Paar zu einem JavaScript-Objekt hinzufügen?

Hier ist mein wörtliches Objekt:

var obj = {key1: value1, key2: value2};

Wie kann ich ein Feld hinzufügen? key3 avec value3 zum Objekt?

6voto

stevek-pro Punkte 13546

Wenn Sie mehrere anonyme Objektliterale innerhalb eines Objekts haben und ein weiteres Objekt mit Schlüssel/Wertpaaren hinzufügen möchten, gehen Sie wie folgt vor:

Firebug' das Objekt:

console.log(Comicbook);

zurück:

[Objekt { name="Spiderman", value="11"}, Objekt { name="Marsipulami", value="18"}, Object { name="Garfield", value="2"}]

Code:

if (typeof Comicbook[3]=='undefined') {
    private_formArray[3] = new Object();
    private_formArray[3]["name"] = "Peanuts";
    private_formArray[3]["value"] = "12";
}

wird hinzufügen Object {name="Peanuts", value="12"} zum Comicbuch-Objekt

6voto

Miraj Hamid Punkte 396

Wir können dies auch auf diese Weise tun.

var myMap = new Map();
myMap.set(0, 'my value1');
myMap.set(1, 'my value2');
 for (var [key, value] of myMap) {
  console.log(key + ' = ' + value);
 }

6voto

wombleton Punkte 8198

Sie können es entweder auf diese Weise hinzufügen:

arr['key3'] = value3;

oder auf diese Weise:

arr.key3 = value3;

Die Antworten schlagen vor, das Objekt mit der Variablen key3 würde nur funktionieren, wenn der Wert von key3 war 'key3' .

6voto

Jonathan Stellwag Punkte 3474

Sie können ein neues Objekt erstellen, indem Sie die {[key]: value} Syntax:

const foo = {
  a: 'key',
  b: 'value'
}

const bar = {
  [foo.a]: foo.b
}

console.log(bar); // {key: 'value'}
console.log(bar.key); // value

const baz = {
  ['key2']: 'value2'
}

console.log(baz); // {key2: 'value2'}
console.log(baz.key2); // value2

Mit der bisherigen Syntax können Sie nun die Spread-Syntax verwenden {...foo, ...bar} um ein neues Objekt hinzuzufügen, ohne den alten Wert zu verändern:

const foo = {a: 1, b: 2};

const bar = {...foo, ...{['c']: 3}};

console.log(bar); // {a: 1, b: 2, c: 3}
console.log(bar.c); // 3

6voto

xyxyber Punkte 111

Ein kurzer und eleganter Weg in der nächsten Javascript-Spezifikation (Kandidatenstufe 3) ist:

obj = { ... obj, ... { key3 : value3 } }

Eine ausführlichere Diskussion findet sich in Objektausbreitung vs. Object.assign und weiter Dr. Axel Rauschmayers Website .

Es funktioniert bereits in node.js seit Version 8.6.0.

Vivaldi, Chrome, Opera und Firefox in aktuellen Versionen kennen diese Funktion auch, aber Mirosoft bis heute nicht, weder im Internet Explorer noch in Edge.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X