[...new Set(connectStrList.map(JSON.stringify))].map(JSON.parse); 不支持报错
时间: 2024-03-13 19:42:24 浏览: 28
如果在使用 `[...new Set(connectStrList.map(JSON.stringify))].map(JSON.parse)` 这段代码时出现报错,可能是因为 `connectStrList` 数组中包含了某些无法被转换成 JSON 字符串的对象,导致在执行 `JSON.stringify` 方法时出现了异常。
解决这个问题的方法是,使用 try-catch 结构捕获异常,并在捕获到异常时使用其他方式进行去重,例如使用 `reduce` 方法结合 `Object.keys` 方法进行去重。例如:
```javascript
const uniqueArray = connectStrList.reduce((acc, cur) => {
const key = JSON.stringify(cur);
if (!acc.includes(key)) {
acc.push(key);
}
return acc;
}, []).map(JSON.parse);
```
在上面的代码中,我们使用 `reduce` 方法结合 `Object.keys` 方法进行去重。具体来说,我们定义了一个空数组 `acc` 作为 `reduce` 方法的初始值,然后对 `connectStrList` 数组进行遍历,将每个对象转换为字符串,并作为 key 值存入一个新的数组 `acc` 中。在存入之前,我们使用 `Array.prototype.includes` 方法判断新数组中是否已经包含了该 key,如果没有则存入,否则不做处理。最后,我们使用 `map` 方法将新数组中的每个字符串转换为对象,得到去重后的对象数组。
需要注意的是,在使用 `reduce` 方法去重时,如果数组中有大量重复项,可能会导致性能问题。因此,对于数据量较大的数组,建议使用其他去重方法。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)