ts 里 object[] 去重
时间: 2023-10-09 17:07:00 浏览: 47
在 TypeScript 中,如果想要对数组中的对象进行去重,可以使用以下方法:
1. 使用 Set 和 JSON.stringify
```typescript
const arr = [
{ id: 1, name: "John" },
{ id: 2, name: "Jane" },
{ id: 1, name: "John" },
{ id: 3, name: "Bob" }
];
const uniqueArr = Array.from(new Set(arr.map(obj => JSON.stringify(obj))))
.map(str => JSON.parse(str));
console.log(uniqueArr);
// Output: [{ id: 1, name: "John" }, { id: 2, name: "Jane" }, { id: 3, name: "Bob" }]
```
2. 使用 filter 和 findIndex
```typescript
const arr = [
{ id: 1, name: "John" },
{ id: 2, name: "Jane" },
{ id: 1, name: "John" },
{ id: 3, name: "Bob" }
];
const uniqueArr = arr.filter((obj, index, self) =>
index === self.findIndex(o => o.id === obj.id && o.name === obj.name)
);
console.log(uniqueArr);
// Output: [{ id: 1, name: "John" }, { id: 2, name: "Jane" }, { id: 3, name: "Bob" }]
```
这些方法将根据对象的属性进行去重操作。根据具体需求选择适合的方法即可。请注意,如果对象属性值是引用类型,需要根据实际情况来判断是否需要进行深度比较。
相关推荐
![](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)