# \_.updateWith

**语法：**

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

**源代码链接：**[source](https://github.com/lodash/lodash/blob/4.17.10/lodash.js#L13896)

**npm包链接：**[npm package](https://www.npmjs.com/package/lodash.updatewith)

**描述：**

该方法类似

[`_.update`](https://lodash.com/docs/4.17.10#update)，不同之处在于它接受`customizer`，调用来生成新的对象的`path`。如果`customizer`返回`undefined`，路径创建由该方法代替。`customizer`调用有三个参数：*(nsValue, key, nsObject)*。

> **Note:**&#x8FD9;个方法会改变`object`.

**开始版本：**&#x34;.6.0

**参数：**

* `object (Object)`: 要修改的对象。
* `path (Array|string)`: 要设置属性的路径。
* `updater (Function)`: 用来生成设置值的函数。
* `[customizer] (Function)`: 用来自定义分配值的函数。

**返回值：**

* `(Object)`: 返回 object.

**例子：**

```javascript
var object = {};

_.updateWith(object, '[0][1]', _.constant('a'), Object);
// => { '0': { '1': 'a' } }
```
