Método Lodash _.mergeWith()

El método _.mergeWith() utiliza una función de personalización que se invoca para producir los valores combinados de las propiedades de origen y destino dadas. Cuando la función del personalizador devuelve undefined, el método maneja la fusión en su lugar. Es casi lo mismo que el método _.merge().

Sintaxis:

_.mergeWith( object, sources, customizer )

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

  • objeto: este parámetro contiene el objeto de destino.
  • fuentes: este parámetro contiene el objeto de origen. Es un parámetro opcional.
  • personalizador: Esta es la función para personalizar los valores asignados.

Valor devuelto: este método devuelve el objeto.

Ejemplo 1:

Javascript

// Requiring the lodash library  
const _ = require("lodash");  
  
// The destination object
var object = {
  'amit': [{ 'susanta': 20 }, { 'durgam': 40 }]
};
   
// The source object
var other = {
  'amit': [{ 'chinmoy': 30 }, { 'kripamoy': 50 }]
};
  
// Using the _.mergeWith() method 
console.log(_.mergeWith(object, other));

Producción:

{ ‘amit’: [{‘chinmoy’: 30, ‘susanta’: 20 }, { ‘durgam’: 40, ‘kripamoy’: 50 }] }

Ejemplo 2:  

Javascript

// Requiring the lodash library  
const _ = require("lodash");  
  
// Defining the customizer function
function customizer(obj, src) {
  if (_.isArray(obj)) {
    return obj.concat(src);
  }
}
   
// The destination object
var object = {
  'amit': [{ 'susanta': 20 }, { 'durgam': 40 }]
};
   
// The source object
var other = {
  'amit': [{ 'chinmoy': 30 }, { 'kripamoy': 50 }]
};
  
// Using the _.mergeWith() method 
console.log(_.mergeWith(object, other, customizer));

Producción:

{ ‘amit’: [{‘susanta’: 20 }, { ‘durgam’: 40}, {‘chinmoy’: 30}, {‘kripamoy’: 50 } ]}

Publicación traducida automáticamente

Artículo escrito por sanjoy_62 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 *