📜  Lodash _.updateWith() 方法

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

Lodash _.updateWith() 方法

_.updateWith()方法接受一个自定义函数,该函数被调用以生成路径的对象。如果定制函数返回未定义的路径,则由该方法处理。它与 _.update()函数几乎相同。

句法:

_.updateWith(object, path, updater, [customizer])

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

  • object:此参数保存要修改的对象。
  • path:此参数保存要设置的属性的路径。它将是一个数组或字符串。
  • updater:这是产生更新值的函数。
  • customizer:此参数包含自定义分配值的函数。

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

示例 1:

Javascript
// Requiring the lodash library  
const _ = require("lodash");  
  
// The source object 
var obj = {};
  
// Use of _.updateWith() method 
let gfg = _.updateWith(obj, '[0][1]',
    _.constant('y'), Object);
  
// Returning the new object
console.log(gfg);


Javascript
// Requiring the lodash library  
const _ = require("lodash");  
  
// The source object 
var obj = { 'cpp': [{ 'java': { 'python': 3 } }] };
  
// Use of _.updateWith() method 
_.updateWith(obj, 'cpp[0].java.python', 
    function(n) { return n * n; });
  
// Returning the updated object value
console.log(obj.cpp[0].java.python);


输出:

{ '0': { '1': 'y' } }

示例 2:

Javascript

// Requiring the lodash library  
const _ = require("lodash");  
  
// The source object 
var obj = { 'cpp': [{ 'java': { 'python': 3 } }] };
  
// Use of _.updateWith() method 
_.updateWith(obj, 'cpp[0].java.python', 
    function(n) { return n * n; });
  
// Returning the updated object value
console.log(obj.cpp[0].java.python);

输出:

9

注意:这在普通 JavaScript 中不起作用,因为它需要安装 lodash 库。