# \_.update

**语法：**

```javascript
_.update(object, path, updater)
```

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

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

**描述：**

该方法类似[`_.set`](https://lodash.com/docs/4.17.10#set)，除了接受`updater`以生成要设置的值。使用[`_.updateWith`](https://lodash.com/docs/4.17.10#updateWith)来自定义生成的新`path`。`updater`调用1个参数：*(value)*。

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

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

**参数：**

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

**返回值：**

* `(Object)`: 返回 object 。

**例子：**

```javascript
var object = { 'a': [{ 'b': { 'c': 3 } }] };

_.update(object, 'a[0].b.c', function(n) { return n * n; });
console.log(object.a[0].b.c);
// => 9

_.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
console.log(object.x[0].y.z);
// => 0
```
