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

TypeScript中如何正确筛选数组所有descrizioneTipoCertificato为NAVE的元素

TypeScript中筛选数组元素的正确实现

你需要筛选出数组中所有descrizioneTipoCertificato字段值为"NAVE"的元素,当前使用的方法逻辑有误,导致无法获取全部符合条件的元素。

原方法的问题

你当前用findIndex找到第一个符合条件的元素索引,再用splice删除它——这本质是删除元素而非筛选元素,而且每次操作只会处理第一个匹配项,重复执行时还会因为数组长度变化导致后续元素索引偏移,最终漏掉部分符合条件的元素。

正确的filter实现

filter方法正是为这类场景设计的,它会遍历数组并返回所有满足条件的元素组成的新数组,不会修改原数组。

首先可以给数组元素定义TypeScript类型:

interface Certificato {
  codicePat: number;
  dataInizioAttivita: string;
  dataCessazione: string;
  descrizioneTipoCertificato: string;
}

然后使用filter完成筛选:

// 假设原数组为dataPan.content,类型为Certificato[]
const filteredCertificati = dataPan.content.filter(item => 
  item.descrizioneTipoCertificato === 'NAVE'
);

执行后filteredCertificati会包含所有descrizioneTipoCertificato为"NAVE"的3个元素。

若需修改原数组(保留目标元素)

如果你的需求是直接在原数组中保留符合条件的元素,也可以用filter的结果覆盖原数组:

dataPan.content = dataPan.content.filter(item => 
  item.descrizioneTipoCertificato === 'NAVE'
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:54:54