Lodash is a JavaScript library that works on the top of underscore.js. Lodash helps in working with arrays, strings, objects, numbers, etc.
The _.extendWith() method of Object in lodash is similar to _.assignIn() method and the only difference is that it accepts customizer which is called in order to generate assigned value. Moreover, if the customizer used here returns undefined then the assignment is dealt by the method instead.
Note:
- The customizer used here can be called with five arguments namely objValue, srcValue, key, object, and source.
- The object used here is altered by this method.
Syntax:
_.extendWith(object, sources, [customizer])
Parameters: This method accepts three parameters as mentioned above and described below:
- object: It is the destination object.
- sources: It is the source objects.
- customizer: It is the function that customizes assigned values.
Return Value: This method returns an object.
Example 1:
// Requiring lodash library const _ = require( 'lodash' ); // Defining a function customizer function customizer(objectVal, sourceVal) { return _.isUndefined(objectVal) ? sourceVal : objectVal; } // Calling extendWith method with its parameter let obj = _.extendWith({ 'gfg' : 1 }, { 'geek' : 3 }, customizer); // Displays output console.log(obj); |
Output:
{ gfg: 1, geek: 3 }
Example 2:
// Requiring lodash library const _ = require( 'lodash' ); // Defining a function customizer function customizer(objectVal, sourceVal) { return _.isUndefined(objectVal) ? sourceVal : objectVal; } // Defining a function GfG function GfG() { this .p = 7; } // Defining a function Portal function Portal() { this .r = 9; } // Defining prototype of above functions GfG.prototype.q = 8; Portal.prototype.s = 10; // Calling extendWith method // with its parameter let obj = _.extendWith({ 'p' : 6 }, new GfG, new Portal, customizer); // Displays output console.log(obj); |
Output:
{ p: 6, q: 8, r: 9, s: 10 }
Reference: https://lodash.com/docs/4.17.15#assignInWith