Angular中如何通过id过滤或移除对象数组中的指定元素
Angular 按多个id过滤对象数组实现方案
你需要的功能可以直接使用JavaScript原生数组方法实现,无需依赖Angular额外API,两种常用写法如下:
- 基础写法(数据量较小时使用)
将需要排除的id整理为数组,配合filter+includes实现过滤:
// 定义要排除的id列表 const excludeIds = [5, 12, 9]; // 过滤得到新数组,不会修改原数据源 let newArr = data.filter(item => !excludeIds.includes(item.id));
- 性能优化写法(数据量较大时使用)
用Set存储要排除的id,查找效率更高,适合数据量过百的场景:
// Set的has方法时间复杂度为O(1),远高于数组includes的O(n) const excludeIdSet = new Set([5, 12, 9]); let newArr = data.filter(item => !excludeIdSet.has(item.id));
注意如果你的id字段为字符串类型,需要保证排除列表的元素和id类型一致,或者做统一类型转换后再判断,比如改为
!excludeIds.includes(Number(item.id))即可。
内容的提问来源于stack exchange,提问作者user16619763
相关产品推荐
相关产品推荐

