如何用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
相关产品推荐
相关产品推荐

