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 库。