javascript - 仅当数组中存在该元素时,如何使用 splice() 删除单个元素?
问题描述
我将服务器返回的有效负载传递给allUsers,并希望从allUsers数组中删除登录用户的对象。当allUsers长度大于 1
时它工作正常,但是如果allUsers仅包含一个对象,即使 id 不匹配,它也会删除对象。
this.allUsers = response.payload.users;
this.allUsers.splice(this.allUsers.findIndex(x => x.id === sessionData.id), 1);
解决方案
您可以只使用filter
获取一个包含所有用户的新数组,而无需当前登录的用户:
this.allUsers = response.payload.users.filter(x => x.id !== sessionData.id);
推荐阅读
- r - 读取 Excel 文件并选择特定的行和列
- c# - 从两个表中检索数据并填充 DataGrid 实体框架
- java - 加载 csv 文件时过滤特定行
- java - 如何使用 fxml 文档中资源包中的字符串填充 javafx ChoiceBox
- java - 没有最低面值的货币面额组合
- java - 查找数组列表对象的最大或最小元素
- laravel - 在 Laravel 5.4 的 App\Libraries 中加载配置类
- wso2is - WSO2 IS 5.5.0 – 在 BASIC 和 IWA 身份验证之间动态切换
- angular - 如何以角度反应形式将对象动态注入到 formArrayName
- python - 如何通过代码在 HDInsight 群集上运行命令?