ts中获取某个对象[]中对象的某个属性,得到一个新[],并对内容去重排序
时间: 2024-11-05 13:26:43 浏览: 13
vue中对象数组去重的实现
在TypeScript (TS) 中,如果你想从数组(Array)中获取每个对象的特定属性,并基于该属性创建一个新的、去重并排序的数组,你可以这样做:
```typescript
type MyObject = {
// 假设你的对象有一个名为"name"的属性
name: string;
};
// 原始数组
const sourceArray: MyObject[] = [
{ name: 'a' },
{ name: 'b' },
{ name: 'c' },
{ name: 'a' }, // 重复项
];
// 获取 "name" 属性并过滤重复
function extractAndDeDup(arr: MyObject[]): string[] {
const uniqueNames = Array.from(new Set(arr.map(obj => obj.name)));
return uniqueNames.sort(); // 排序
}
// 使用函数处理源数组
const distinctSortedNames: string[] = extractAndDeDup(sourceArray);
console.log(distinctSortedNames);
```
在这个例子中,`extractAndDeDup` 函数首先使用 `map` 和 `Set` 来去除重复值,然后将结果转换回数组并使用 `sort` 方法对属性值进行排序。
阅读全文