从数组中删除对象?

时间:2018-02-20 09:49:00

标签: angular

我的模板中有这个:

   <div class="ui-g" *ngFor="let item of orderTrackings, let i = index;" (click)="selectItem(item,i)" [ngClass]="{'active':selectedItem == i}">
       <destinations #cpdc class="child" *ngIf="orderTrackings.length" [item]="item" [trackings]="orderTrackings" [dfp]="dataFromPopup" [groupDestinations]="groupDestinations"></destinations>
    </div>

问题是在orderTrackings数组中我可以有多个完全相同的对象。如何在单击时仅选择一个对象,如果在新数组中不存在,则在删除它时添加它。这是我的意思:

selectItem(item,i) {
    if(this.selectedItem.indexOf(item,i) === -1){
        this.selectedItem.push(item);
    }else{
        this.selectedItem.splice(this.selectedItem.indexOf(item,i), 1);
    }
}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为该项可能有一些id,你可以遍历数组并查找是否存在具有id的特定项。

selectItem(item) {
    const itemPresent = this.selectedItem.find(t => t.id === item.id)

    if(itemPresent){
        this.selectedItem = this.selectedItem.filter(t => t.id !== item.id)
    }else{
        this.selectedItem.push(item);
    }
}