# \_.cloneDeepWith(value, customizer )

URL: https://caijiao.org/lodash/docs/Lang/_.cloneDeepWith
Source: docs/lodash/docs/Lang/_.cloneDeepWith.md
Description: 创建一个深拷贝（deep clone）的 'value'，允许通过自定义函数对拷贝过程进行自定义处理。

`_.cloneDeepWith(value, [customizer])` 创建一个深拷贝（deep clone）的 `value`，允许通过自定义函数对拷贝过程进行自定义处理。

- `value`：要进行深拷贝的值。
- `customizer`（可选）：自定义处理函数，用于对每个值进行自定义处理。该函数接受三个参数：`(value, index|key, object|array)`。

示例：

```javascript
const obj = { a: 1, b: { c: 2 } };
const arr = [1, [2, { d: 3 }]];

const clonedObj = _.cloneDeepWith(obj, (value) => {
  if (typeof value === "number") {
    return value * 2; // 对数字进行自定义处理，将其乘以 2
  }
});

const clonedArr = _.cloneDeepWith(arr, (value) => {
  if (Array.isArray(value)) {
    return value.map((item) => item * 2); // 对数组中的每个元素进行自定义处理，将其乘以 2
  }
});

// 输出拷贝后的对象和数组
console.log(clonedObj); // 输出：{ a: 2, b: { c: 4 } }
console.log(clonedArr); // 输出：[2, [4, { d: 6 }]]
```

在这个例子中，`_.cloneDeepWith` 创建了对象 `obj` 和数组 `arr` 的深拷贝 `clonedObj` 和 `clonedArr`，并通过自定义处理函数对拷贝过程进行了自定义处理。
