Like in arrays we can add new elements by using array.push(item)
. How to do the same with objects
? And can it be done inside the object? Like:
var myObject={apple: "a", orange: "o"};
var anothObject = {lemon: "l", myObject};
To copy all elements of one object to another object, use Object.assign
:
var myObject = { apple: "a", orange: "o" };
var anothObject = Object.assign( { lemon: "l" }, myObject );
Or, more elegantly ES6 style using spread ...
operator:
let myObject = { apple: "a", orange: "o" };
let anothObject = { lemon: "l", ...myObject };
You could add some properties of an object simply like this :
obj = {a : "1", b : "2"};
myObj = {c: "3", d : "4"};
myObj.a = obj.a;
myObj.b = obj.b;
Update:
In that case just do this :
for(var prop in obj) myObj[prop] = obj[prop];
And to filter out the unwanted properties inside the loop body you could also do this :
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
myObj[prop] = obj[prop];
}
}
You can use jQuery's extend function: http://api.jquery.com/jquery.extend/
var object1 = {
apple: 0,
banana: { weight: 52, price: 100 },
cherry: 97
};
var object2 = {
banana: { price: 200 },
durian: 100
};
// Merge object2 into object1
$.extend( object1, object2 );
A non-jquery option: you could iterate of the keys of the object to be merged.
var myObject={apple: "a", orange: "o"};
var anothObject = {lemon: "l"};
Object.keys(myObject).forEach(function(key) {
anothObject[key] = myObject[key];
});
At the end of the loop anothObject
is {lemon: "l", apple: "a", orange: "o"}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With