Open In App

Lodash _.extendWith() Method

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:

Syntax:



_.extendWith(object, sources, [customizer])

Parameters: This method accepts three parameters as mentioned above and described below:

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


Article Tags :