【发布时间】:2020-01-17 19:00:56
【问题描述】:
我有这样的事情:
items: { _id: number; place: SomeAddressClassDto }[] = [];
sessionItem: { _id: number; place: SomeAddressClassDto };
createAddressList() {
this.service.getWorkingPlaces().subscribe((items) => {
this.items = items;
this.sessionItem = {
place: JSON.parse(sessionStorage.getItem('currentPlace')),
_id: this.items.length,
};
this.items.push(this.sessionItem);
// _.uniqBy(this.items, 'place')
const idx = items.findIndex((item) => this.service.comparePlaces(item.place,
this.service.getCurrentWorkingPlace()));
if (idx !== -1) this.radiobox.option = `${idx}`;
});
}
我正在尝试使用 _uniqBy 方法从“items”数组中删除所有重复项,但它不起作用。我认为这是因为对于这个 items._id 总是不同但 items.place 可能是相等的,如果是我想摆脱这个。
也许更好的方法是检查是否相同的 items.place 已经在该数组中,但不知道如何执行此操作。
编辑: 具体来说,项目如下所示:
0: place: {name, street, city, etc...}
_id: 0
因此,可能有非常相似的对象,但只有一个属性不同{}
【问题讨论】:
标签: javascript arrays angular typescript object