2 回答

TA貢獻1878條經驗 獲得超4個贊
問題是您缺少以下作業map:
this.Bill = this.Bill.map...
但是,作為建議,您可以編寫一種更實用的方法:
addToCart(item: SalesScreenItemsModel) {
const itemExists = this.Bill.some(element => element.itemId === item.itemId);
if (itemExists) {
this.Bill = this.Bill.map(element => ({
...element,
itemQuantity: element.itemQuantity + (element.itemId === item.itemId ? 1 : 0)
}));
} else {
this.Bill = [...this.Bill, item];
}
}
對于remove:
deleteBillItem(itemIndex: number) {
this.Bill = this.Bill.filter((element, index) => index !== itemIndex);
}
另外,Bill這不是數組/列表的最佳名稱:)

TA貢獻1790條經驗 獲得超9個贊
添加項目時嘗試將 item.itemQuantity 設置為 1
addToCart(item: SalesScreenItemsModel) {
// tslint:disable-next-line: variable-name
const itemIndex=this.Bill.find((billItem) => item.itemId == billItem.itemId);
if(itemIndex == -1){
item.itemQuantity=1;
this.Bill.push(item);
return;
}
this.bill[itemIndex].itemQuantity+=1;
}
- 2 回答
- 0 關注
- 115 瀏覽
添加回答
舉報