拼接移除最小ID不是特定项目



在网站上查看新闻文章的实时计数器。Laravel Jetstream。

.leaving(user => {
this.participants.splice( this.participants.indexOf(user, 1));
})
.joining(user => {
this.participants.push(user);
this.count++;
})

然而,我注意到,如果页面上有两个用户,它会不断删除ID值最小的用户。成功地测试了该理论。

因此,如果乔登录用户ID 100,然后吉米登录ID 200。在列表中显示两个用户。

吉米的屏幕:

  • 吉米

如果Joe刷新页面,它会将Jimmy从活动用户中删除,并将其重新设置为活动用户,刷新后在屏幕上显示两次。无论谁刷新(进入或离开(,Joe的项目都保持正确。

吉米的屏幕:

这就像索引不正确,因此没有正确拼接——只删除列表上的最后一项,然后用ID较低的用户重新填充。

然而,我注意到,如果页面上有两个用户,它会保留移除具有最小ID值的一个。

这很有意义,因为您可能已经对数组进行了排序,indexOf返回找到的第一个ocurrence。

indexOf((方法返回给定元素所在的第一个索引可以在数组中找到,如果不存在,则为-1。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

所以,在进行拼接之前,你可能必须进行不同的过滤。。。

最新更新