ts对象数组去重
时间: 2023-06-21 20:05:50 浏览: 62
可以使用`Set`数据结构来进行数组去重。具体操作如下:
```typescript
interface Person {
name: string;
age: number;
}
const persons: Person[] = [
{ name: "Alice", age: 20 },
{ name: "Bob", age: 22 },
{ name: "Alice", age: 20 },
{ name: "Charlie", age: 25 },
];
const uniquePersons = Array.from(new Set(persons.map((p) => JSON.stringify(p)))).map(
(p) => JSON.parse(p)
);
console.log(uniquePersons);
// Output: [{ name: "Alice", age: 20 }, { name: "Bob", age: 22 }, { name: "Charlie", age: 25 }]
```
上述代码中,首先使用`map`将对象数组转化为字符串数组,再使用`Set`去重,最后再将字符串转回对象。注意,这里对对象进行了序列化和反序列化,因此对于对象的属性顺序敏感。如果需要忽略属性顺序,则需要使用其他方式进行去重。
相关问题
使用ts 数组对象去重
使用 JavaScript 的 Set 对象可以很方便地去重数组对象。Set 对象具有去重功能,可以将数组对象转换为 Set 对象,再将 Set 对象转换回数组对象。代码如下:
```
let arr = [{id: 1}, {id: 2}, {id: 1}, {id: 3}];
let set = new Set(arr);
let newArr = Array.from(set);
```
其中,arr 是需要去重的数组对象,set 是去重后的 Set 对象,newArr 是去重后的数组对象。
注意:如果对象是对象的话这种方式不能去重,需要利用对象的某个属性进行去重。
```
let arr = [{id: 1,name:"a"}, {id: 2,name:"b"}, {id: 1,name:"c"}, {id: 3,name:"d"}];
let newArr = Array.from(new Set(arr.map(item => item.id))).map(id => {
return arr.find(item => item.id === id)
});
```
上面的代码就是通过 id 属性进行去重。
ts定义数组对象
在 TypeScript 中,定义数组对象可以有多种方式。以下是其中一些示例:
1. 使用数组字面量:
```
let myArray: number[] = [1, 2, 3, 4, 5];
let myStringArray: string[] = ["Hello", "World"];
```
2. 使用泛型数组类型:
```
let myArray: Array<number> = [1, 2, 3, 4, 5];
let myStringArray: Array<string> = ["Hello", "World"];
```
3. 定义一个空数组:
```
let myArray: number[] = [];
```
4. 定义具有固定长度的数组:
```
let myArray: [number, string] = [1, "Hello"];
```
其中,`[number, string]` 表示数组中只能有两个元素,第一个为数字类型,第二个为字符串类型。
无论哪种方式,都可以通过索引来访问数组中的元素,例如 `myArray[0]`。