array
リストから重複オブジェクトを削除し、代わりにアイテム数量プロパティを更新する方法を見つけようとしています。私はオブジェクトを私のsharedService
にプッシュしています。配列内の重複オブジェクトを避け、角度2のアイテム数量を更新する方法
item component - これは数量を1だけ更新しますが、配列内の同じオブジェクトをプッシュします。 if()
がaddToBasket()
またはSharedService
にあるはずですが、確かにif()
のステートメントが間違っていることを確認してください。
一意のオブジェクトを配列にプッシュし、同じオブジェクト/アイテムを追加するときに数量を更新するにはどうすればよいですか?値2
のようになります
addToBasket() {
let items = {
id: '123',
quantity: 1
};
if (items) {
items.quantity = parseInt(items.quantity) + 1;
} else {
this.basketArr = {
id: items.name,
quantity: items.quantity
}
}
this.sharedService.itemCollection(items);
}
マイSharedService
これまでのところだけ保持しているarray
オブジェクト
itemCollection(id) {
this.itemArr.push(id);
console.log(this.itemArr);
}
所望の結果が更新された量です。
[{ id: '123, quantity: 2 }]
の代わりに - 新しいアイテムが配列にプッシュする前に存在しているかどうかを
[
{ id: '123, quantity: 2 },
{ id: '123, quantity: 2 }
]
どのように量を更新しましたか? – MrNew
@MrNew 'addToBasket'では' quantity'は常に2になるので、 'id'のチェックだけを提案します。 'id'と' quantity'の両方を 'Array.findIndex'でチェックするか、単にサービスで行われる' quantity'のインクリメントを動かすだけです。 – Pengyy
どういうわけか、新しい/別のオブジェクトを配列に追加せず、配列内のオブジェクトの量を更新するだけです。上記のコードを編集することもできますが、コードブロックが壊れているようです。 – MrNew