21

I've two objects and I want to add properties from object A to object B and I try with extend which doesn't work,do I need to use something different ?

a = { name = "value" name2 = "value2" } b = { name3 = "value" name4 = "value2" } 

I want that A will contain both

a = { name = "value" name2 = "value2" name3 = "value" name4 = "value2" } 

3 Answers 3

43

_.extend (now called _.assign) is indeed how you do this:

_.assign(a, b); 

Live Example:

const a = { name: "value", name2: "value2", }; const b = { name3: "value", name4: "value2", }; _.assign(a, b); console.log(JSON.stringify(a, null, 2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.6/lodash.min.js"></script>

Though as of ES2015, you don't need Lodash for it, you can use the native Object.assign:

Live Example:

const a = { name: "value", name2: "value2", }; const b = { name3: "value", name4: "value2", }; Object.assign(a, b); console.log(JSON.stringify(a, null, 2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.6/lodash.min.js"></script>

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks I try it but after the assign was called I see the properties in object A but with undefiend values,why?
7

First of all, your defined objects are incorrect. Objects must be written as name:value pairs, separated by a colon (and not by an equality sign). Furthermore, you must use comma separators to delimit the properties of the object, like:

var person = { firstName: "Matthias", lastName: "Eckhart", eyeColor: "blue" }; 

To extend an object with various properties via lodash, you can use _.assign(object, [sources], [customizer], [thisArg]):

var a = { name: "value", name2: "value2" }; var b = { name3: "value", name4: "value2" }; _.assign(a, b); // extend console.log(a);
<script src="https://raw.githubusercontent.com/lodash/lodash/3.10.1/lodash.min.js"></script>

Comments

3

I believe you want to use the lodash merge function, rather than extend. See: Lodash - difference between .extend() / .assign() and .merge()

2 Comments

thanks but when I use merge the values of the new properties in 'undefined' why?
See @t-j-crowder's answer, seems to be working fine.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.