# \_.setWith

**语法：**

```javascript
_.setWith(object, path, value, [customizer])
```

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

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

**描述：**

这个方法类似[`_.set`](https://lodash.com/docs/4.17.10#set)，除了它接受一个`customizer`，调用生成对象的`path`。 如果`customizer`返回`undefined`将会有它的处理方法代替。`customizer`调用3个参数：*(nsValue, key, nsObject)*。

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

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

**参数：**

* `object (Object)`: 要修改的对象。
* `path (Array|string)`: 要设置的对象路径。
* `value (*)`: 要设置的值。
* `[customizer] (Function)`: 这个函数用来定制分配的值。

**返回值：**

* `(Object)`: 返回 object。

**例子：**

```javascript
var object = {};

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