Método Lodash _.extendWith()

Lodash es una biblioteca de JavaScript que funciona en la parte superior de underscore.js. Lodash ayuda a trabajar con arrays, strings, objetos, números, etc.

El método _.extendWith() de Object en lodash es similar al método _.assignIn() y la única diferencia es que acepta el personalizador al que se llama para generar el valor asignado. Además, si el personalizador utilizado aquí devuelve indefinido, la asignación la realiza el método.

Nota:

  • El personalizador utilizado aquí se puede llamar con cinco argumentos, a saber , objValue , srcValue , key , object y source .
  • El objeto usado aquí es alterado por este método.

Sintaxis:

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

Parámetros: este método acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:

  • objeto: Es el objeto de destino.
  • fuentes: Son los objetos fuente.
  • personalizador: Es la función que personaliza los valores asignados.

Valor devuelto: este método devuelve un objeto.

Ejemplo 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);

Producción:

{ gfg: 1, geek: 3 }

Ejemplo 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);

Producción:

{ p: 6, q: 8, r: 9, s: 10 }

Referencia: https://lodash.com/docs/4.17.15#assignInWith

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *