首页 > 解决方案 > 仅当数组中存在该元素时,如何使用 splice() 删除单个元素?

问题描述

我将服务器返回的有效负载传递给allUsers,并希望从allUsers数组中删除登录用户的对象。当allUsers长度大于 1
时它工作正常,但是如果allUsers仅包含一个对象,即使 id 不匹配,它也会删除对象。

this.allUsers = response.payload.users;
this.allUsers.splice(this.allUsers.findIndex(x => x.id === sessionData.id), 1);

标签: javascriptnode.jsangular

解决方案


您可以只使用filter获取一个包含所有用户的新数组,而无需当前登录的用户:

this.allUsers = response.payload.users.filter(x => x.id !== sessionData.id);

推荐阅读