wake-up-neo.com

Fügen Sie einem Array von Objekten eine Eigenschaft hinzu

Ich habe ein Array von Objekten wie unten gezeigt

Object {Results:Array[2]}
     Results:Array[2]
[0-1]
0:Object
       id=1     
       name: "Rick"
1:Object
       id=2     
       name:'david'

Ich möchte jedem Element dieses Arrays von Objects eine weitere Eigenschaft namens Active hinzufügen. 

Das Endergebnis sollte wie folgt aussehen. 

Object {Results:Array[2]}
     Results:Array[2]
[0-1]
0:Object
       id=1     
       name: "Rick"
       Active: "false"
1:Object
       id=2     
       name:'david'
       Active: "false"

Kann mir bitte jemand wissen, wie ich das erreichen kann. 

39
Patrick

Sie können die Methode forEach verwenden, um eine bereitgestellte Funktion einmal für jedes Element im Array auszuführen. In dieser Funktion können Sie dem Element die Active -Eigenschaft hinzufügen.

Results.forEach(function(element) { element.Active = "false"; });
68
Tholle

oder map verwenden

Results.map((obj) => {
    obj.Active = 'false';
    return obj;
})

Lesen Sie die Spezifikation

49
sidonaldson
  Object.defineProperty(Results, "Active", {value : 'true',
                       writable : true,
                       enumerable : true,
                       configurable : true});

Ich bin auch auf dieses Problem gestoßen, und als ich versuchte, es zu lösen, stürzte ich den Chrome-Tab ab, auf dem meine App ausgeführt wurde. Es sieht aus wie der Spread-Operator für Objekte war der Täter.

Mit etwas Hilfe aus dem Kommentar von adrianolsk und der obigen Antwort von sidonaldson habe ich Object.assign () die Ausgabe des Spread-Operators von babel verwendet:

this.options
  .map(option => {
    return Object.assign(option, {newkey1:value1, newkey2:value2});
  });
0
Joel Balmer