【发布时间】:2017-08-15 17:55:26
【问题描述】:
我想了解我的用例中的 .distinct 运算符:
我通过用户输入搜索国家/地区,并希望在名为 country 的属性中仅显示一个具有特定内容的对象。
解释:
我有一个包含各种对象内容的 BehaviorSubject:
[
{id:1, country: "United Kingdom", city:"London"},
{id:2, country: "United Kingdom", city:"Manchester"},
{id:3, country: "Germany", city:"Berlin"},
...
]
数组的类型例如loc[]:
interface loc {
id: number;
country: string;
city: string;
}
这是通过用户输入进行的过滤(在下面的代码中称为“查询”):
BehaviorSubject
.map(x => x.filter((l) =>
l.country.toLowerCase().indexOf(query.toLowerCase()) > -1))
如果用户输入是“联合”,我会得到一个包含两个对象的结果数组。
为了只获取一个对象,我使用了另一个 .map 来处理重复项(标准 js 代码从数组中删除重复项)并返回一个只有一个对象的数组。
- 如何使用
.distinct删除数组中的重复项? - 如果您查看第一个
.map,x的类型是loc[]。如何获取.map运算符中的数组项而不是数组类型?
提前致谢
【问题讨论】: