javascript - 计数器应重置为零,然后再次从 1 开始
问题描述
我想将读取消息的数量存储在一个数组中,然后根据长度和计数器值之间的差异重置计数器。
this.badgeCount = this.messages.length //5
这里this.messages.length来自每条消息的服务。
每当 matMenu 关闭时,我都会将计数器重置为零并将消息标记为已读。
menuClosed(){
this.badgeCount = 0;
this.messages.forEach((message: Message){
message.read = true;
})
}
这里的问题是this.messages.length总是会是实际长度让我们说5所以每当新消息到来时,长度变为6在这种情况下,badgeCount 从6而不是0开始。有没有办法可以将读取的消息存储在一个数组中,然后用消息的长度计算它。
解决方案
您需要做的就是让服务只计算未读消息,如下所示
this.badgeCount = this.messages.filter((message: Message) {
return !message.read;
}).length;
推荐阅读
- javascript - 池和事务的 Node.js MySQL 错误处理
- linux - linux将缺少的qoutes附加到csv字段/标题
- android - 带有片段的 NullPointerException 事件总线订阅方法
- amazon-web-services - 访问另一个用户创建的 EC2 实例
- arrays - 一个定制的画廊。我如何使用 *ngFor 或其他东西在每个 div 上显示不同的图像?
- python-3.x - 我没有做我想让它做的事。我在猜数字游戏
- java - 无法使用 Itext 在 PDF 中设置字体系列
- postgresql - 将枚举与 IN 谓词一起使用的最佳方式
- sql - postresql 连接表而不检查 where 条件
- javascript - 使用javascript为每个按钮设置一个新的id