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

如何用JavaScript移除数组中不包含指定子串的元素?

在JavaScript中过滤数组保留包含指定子串的元素

对于你的需求,最直接且推荐的方法是使用JavaScript数组的filter()方法,结合字符串的includes()(或indexOf())来实现过滤,下面是具体步骤:

方法一:使用filter() + includes()(ES6+,简洁直观)

filter()方法会遍历数组,只保留回调函数返回true的元素;includes()方法用于检查字符串是否包含指定子串,返回布尔值。

let myarr = ['A511-0001-01', 'APWA-0001-03', 'APWA-9999-99'];
let filteringCondition = 'AP';

// 过滤出包含"AP"的元素,重新赋值给原数组
myarr = myarr.filter(item => item.includes(filteringCondition));

console.log(myarr); // 输出结果:['APWA-0001-03', 'APWA-9999-99']

方法二:兼容旧浏览器(用indexOf()替代includes())

如果需要兼容IE这类不支持ES6includes()的旧浏览器,可以用indexOf()方法:它返回子串在字符串中的起始位置,找不到则返回-1,判断结果不等于-1就说明包含该子串。

let myarr = ['A511-0001-01', 'APWA-0001-03', 'APWA-9999-99'];
let filteringCondition = 'AP';

myarr = myarr.filter(item => item.indexOf(filteringCondition) !== -1);

console.log(myarr); // 同样得到预期结果

额外说明

  • filter()不会修改原数组,它会返回一个新的过滤后的数组,所以我们需要把这个新数组重新赋值给myarr(或者用新变量接收,比如const filteredArr = myarr.filter(...))。
  • 这两种方法逻辑清晰、代码量少,非常适合新手处理这类数组过滤需求。

内容的提问来源于stack exchange,提问作者BAO TRUNG NGO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:39:54