You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Angular TypeScript中从字典数组查找并删除指定元素

Angular TypeScript 实现指定元素删除方案

针对你的需求,这里提供一种可靠的实现方式,核心是先定位目标元素的索引,再通过倒序删除避免索引偏移问题:

完整代码示例

// 原始数组
let listOfDict = [ {'num':1}, {'num':2}, {'num':3}, {'num':4}, {'num':5} ];

// 定义需要删除的num值集合
const targetNums = new Set([3, 4]);

// 筛选出所有符合条件的元素索引
const indicesToRemove = listOfDict
  .map((item, index) => targetNums.has(item.num) ? index : -1)
  .filter(index => index !== -1);

// 倒序执行删除操作(关键:避免删除小索引后,大索引对应的元素位置偏移)
indicesToRemove.sort((a, b) => b - a).forEach(index => {
  listOfDict.splice(index, 1);
});

// 验证结果
console.log(listOfDict); // 输出: [ { num: 1 }, { num: 2 }, { num: 5 } ]

关键逻辑说明

  • 用Set存储目标num值,判断元素是否需要删除时效率更高
  • 先收集所有要删除的索引,再从大到小排序后删除:如果先删除小索引,后续元素会向前移位,导致原本的大索引指向错误的元素;倒序删除则不会出现这个问题
  • 直接操作原数组,符合你要求的splice修改方式

内容的提问来源于stack exchange,提问作者venkat0107

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 10:22:34