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?

12voto

Sanchay Kumar Punkte 508

Zwei der am häufigsten genutzten Möglichkeiten wurden bereits in den meisten Antworten erwähnt

obj.key3 = "value3";

obj["key3"] = "value3";

Eine weitere Möglichkeit, eine Eigenschaft zu definieren, ist die Verwendung von Object.defineProperty()

Object.defineProperty(obj, 'key3', {
  value: "value3",       // undefined by default
  enumerable: true,      // false by default
  configurable: true,    // false by default
  writable: true         // false by default
});

Diese Methode ist nützlich, wenn Sie bei der Definition von Eigenschaften mehr Kontrolle haben möchten. Die definierte Eigenschaft kann als aufzählbar, konfigurierbar und vom Benutzer beschreibbar festgelegt werden.

10voto

Eduen Sarceno Punkte 341

Sie können eine Klasse mit der Antwort von @Ionut G. Stan

function obj(){
    obj=new Object();
    this.add=function(key,value){
        obj[""+key+""]=value;
    }
    this.obj=obj
}

Erstellen eines neuen Objekts mit der letzten Klasse:

my_obj=new obj();
my_obj.add('key1', 'value1');
my_obj.add('key2', 'value2');
my_obj.add('key3','value3');

Drucken des Objekts

console.log(my_obj.obj) // Return {key1: "value1", key2: "value2", key3: "value3"} 

Drucken eines Schlüssels

console.log(my_obj.obj["key3"]) //Return value3

Ich bin Neuling in Javascript, Kommentare sind willkommen. Funktioniert bei mir.

7voto

Rohit Tagadiya Punkte 2564

Wir können einem JavaScript-Objekt auf viele Arten ein Schlüssel/Wert-Paar hinzufügen...

FALL - 1 : Erweitern eines Objekts
Auf diese Weise können wir mehrere key: value gleichzeitig auf das Objekt übertragen.

const rectangle = { width: 4, height: 6 };
const cube = {...rectangle, length: 7};
const cube2 = {...rectangle, length: 7, stroke: 2};
  console.log("Cube2: ", cube2);
  console.log("Cube: ", cube);
  console.log("Rectangle: ", rectangle);

FALL - 2 : Verwendung dot Notation

var rectangle = { width: 4, height: 6 };
rectangle.length = 7;
console.log(rectangle);

FALL - 3 : Verwendung [square] Notation

var rectangle = { width: 4, height: 6 };
    rectangle["length"] = 7;
    console.log(rectangle);

7voto

var arrOfObj = [{name: 'eve'},{name:'john'},{name:'jane'}];
    var injectObj = {isActive:true, timestamp:new Date()};

    // function to inject key values in all object of json array

    function injectKeyValueInArray (array, keyValues){
        return new Promise((resolve, reject) => {
            if (!array.length)
                return resolve(array);

            array.forEach((object) => {
                for (let key in keyValues) {
                    object[key] = keyValues[key]
                }
            });
            resolve(array);
        })
    };

//call function to inject json key value in all array object
    injectKeyValueInArray(arrOfObj,injectObj).then((newArrOfObj)=>{
        console.log(newArrOfObj);
    });

Ausgabe wie folgt:-

[ { name: 'eve',
    isActive: true,
    timestamp: 2017-12-16T16:03:53.083Z },
  { name: 'john',
    isActive: true,
    timestamp: 2017-12-16T16:03:53.083Z },
  { name: 'jane',
    isActive: true,
    timestamp: 2017-12-16T16:03:53.083Z } ]

7voto

bdukes Punkte 144019

Ihr Beispiel zeigt ein Objekt, nicht ein Array. In diesem Fall ist der bevorzugte Weg, ein Feld zu einem Objekt hinzuzufügen, ihm einfach etwas zuzuweisen, etwa so:

arr.key3 = value3;

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