📜  Lodash _.assignWith() 方法

📅  最后修改于: 2022-05-13 01:58:10.222000             🧑  作者: Mango

Lodash _.assignWith() 方法

lodash中Object的_.assignWith()方法_类似。 assign 方法和唯一的区别是它接受为生成分配值而调用的定制器。此外,如果此处使用的自定义程序返回 undefined,则分配由方法处理。

笔记:

  • 此处使用的定制器可以使用五个参数调用,即 objValue、srcValue、key、object 和 source。
  • 此处使用的对象是通过此方法更改的。

句法:

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

参数:此方法接受三个参数,如上所述,如下所述:

  • 对象:它是目标对象。
  • 来源:它是对象的来源。
  • 定制器:它是定制分配值的函数。

返回值:此方法返回对象。

下面的示例说明了 JavaScript 中的 Lodash _.assignWith() 方法:

示例 1:

Javascript
// Requiring lodash library
const _ = require('lodash');
  
// Defining a function customizer
function customizer(objectVal, sourceVal) {
  return _.isUndefined(objectVal) ? sourceVal : objectVal;
}
  
// Calling assignWith method with its parameter
let obj = _.assignWith({ 'geeksforgeeks': 13 }, 
                       { 'GFG': 4 }, customizer);
  
// Displays output 
console.log(obj);


Javascript
// Requiring lodash library
const _ = require('lodash');
  
// Defining a function customizer
function customizer(objectVal, sourceVal) {
  return _.isUndefined(objectVal) ? sourceVal : objectVal;
}
  
// Defining a function Num1
function Num1() {
  this.i = 11;
}
  
// Defining a function Num2
function Num2() {
  this.j = 12;
}
   
// Defining prototype of above functions 
Num1.prototype.k = 13;
Num2.prototype.l = 14;
  
// Calling assignWith method with its parameter
let obj = _.assignWith({ 'i': 10 }, 
          new Num1, new Num2,customizer);
  
// Displays output 
console.log(obj);


输出:

{ geeksforgeeks: 13, GFG: 4 }

示例 2:

Javascript

// Requiring lodash library
const _ = require('lodash');
  
// Defining a function customizer
function customizer(objectVal, sourceVal) {
  return _.isUndefined(objectVal) ? sourceVal : objectVal;
}
  
// Defining a function Num1
function Num1() {
  this.i = 11;
}
  
// Defining a function Num2
function Num2() {
  this.j = 12;
}
   
// Defining prototype of above functions 
Num1.prototype.k = 13;
Num2.prototype.l = 14;
  
// Calling assignWith method with its parameter
let obj = _.assignWith({ 'i': 10 }, 
          new Num1, new Num2,customizer);
  
// Displays output 
console.log(obj);

输出:

{ i: 10, j: 12 }

参考: https ://lodash.com/docs/4.17.15#assignWith