📜  Lodash _.cloneWith() 方法

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

Lodash _.cloneWith() 方法

Lodash是一个基于 underscore.js 的 JavaScript 库。 Lodash 有助于处理数组、字符串、对象、数字等。

lodash 中 Lang 的 _.cloneWith()方法类似于_.clone()方法,唯一的区别是它接受为生成克隆值而调用的自定义程序。此外,如果此处使用的自定义程序返回 undefined,则克隆将由该方法处理。

注意:此处使用的自定义程序最多可以使用四个参数调用,即valueindex|keyobjectstack

句法:

_.cloneWith(value, [customizer])

参数:此方法接受上面提到的两个参数,如下所述:

  • value:要比较的值。
  • 定制器:要比较的另一个值。

返回值:此方法返回克隆值。

示例 1:

Javascript
// Requiring lodash library
const _ = require('lodash');
  
// Creating a function customizer
function customizer(val) {
  if (_.isElement(val)) {
    return val.cloneNode(false);
  }
}
  
// Defining value parameter
var value = [1, 2, 3];
  
// Calling cloneWith() method
var cloned_value = _.cloneWith(value, customizer);
  
// Displays output
console.log(cloned_value);


Javascript
// Requiring lodash library
const _ = require('lodash');
  
// Creating a function customizer
function customizer(val) {
  if (_.isElement(val)) {
    return val.cloneNode(false);
  }
}
  
// Defining value parameter
var value = ['Geeks', 'for', 'Geeks'];
  
// Calling cloneWith() method
var cloned_value = _.cloneWith(value, customizer);
  
// Displays output
console.log(cloned_value);


Javascript
// Requiring lodash library
const _ = require('lodash');
  
// Creating a function int which acts as
// customizer
function int(x) {
 if (_.isInteger(x)) {
   return true;
   }
}
  
// Calling cloneWith() method along with
// its parameter
var cloned_value = _.cloneWith({ gfg: 5, 
        geeksforgeeks: 6}, int);
  
// Displays output
console.log(cloned_value);


输出:

[ 1, 2, 3 ]

示例 2:

Javascript

// Requiring lodash library
const _ = require('lodash');
  
// Creating a function customizer
function customizer(val) {
  if (_.isElement(val)) {
    return val.cloneNode(false);
  }
}
  
// Defining value parameter
var value = ['Geeks', 'for', 'Geeks'];
  
// Calling cloneWith() method
var cloned_value = _.cloneWith(value, customizer);
  
// Displays output
console.log(cloned_value);

输出:

[ 'Geeks', 'for', 'Geeks' ]

示例 3:使用isInteger () 方法作为定制器。

Javascript

// Requiring lodash library
const _ = require('lodash');
  
// Creating a function int which acts as
// customizer
function int(x) {
 if (_.isInteger(x)) {
   return true;
   }
}
  
// Calling cloneWith() method along with
// its parameter
var cloned_value = _.cloneWith({ gfg: 5, 
        geeksforgeeks: 6}, int);
  
// Displays output
console.log(cloned_value);

输出:

{ gfg: 5, geeksforgeeks: 6 }

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