【发布时间】:2019-10-06 19:43:33
【问题描述】:
所以我有一个包含不同对象的数组,所有这些对象都包含一个名为“数量”的属性。我想将所有这些金额值加在一起以显示总金额
我尝试使用 for 循环,但我说“this.totalItemCount = this.cart[i].amount;”但它只会给我那个特定对象的数量。
(2) [{…}, {…}]
0: {movie: {…}, amount: 3}
1: {movie: {…}, amount: 3}
length: 2
循环
totalItemCount: number;
addMovie(movie: IMovie) {
let foundMovie = false;
for (let i = 0; i < this.cart.length; i++) {
if (movie.id === this.cart[i].movie.id) {
this.cart[i].amount++;
foundMovie = true;
this.totalItemCount = this.cart[i].amount;
console.log(this.totalItemCount)
}
}
我希望我的变量“totalItemCount”显示为 6。
【问题讨论】:
-
您可以使用
reduce()。this.totalItemCount = this.cart.reduce((ac,a) => a.amount + ac,0)
标签: javascript arrays typescript object ecmascript-6