JavaScript如何判断数组元素中是否包含指定子字符串?
可以使用数组的some()方法配合字符串的includes()实现需求,some()只要匹配到第一个符合条件的元素就会停止遍历直接返回true,性能开销更低。
基础实现代码
let array = ['value othervalue', 'value2 othervalue2'] if (array.some(item => item.includes('value'))) { // 此处写命中后的逻辑 do that }
逻辑说明
some()会遍历数组的每一个元素,执行传入的回调函数- 回调内判断当前元素
item是否包含目标子串,只要有一个元素满足条件,整个some()方法就返回true - 如果所有元素都不满足条件,最终返回
false
扩展场景
- 不区分大小写匹配
可以将元素和目标字符串统一转为小写/大写后再判断:
const target = 'Value' const hasMatch = array.some(item => item.toLowerCase().includes(target.toLowerCase()))
- 同时获取所有匹配的元素
如果需要拿到所有包含目标子串的元素,可以改用filter()方法:
const matchedList = array.filter(item => item.includes('value')) // matchedList长度大于0则说明有匹配项 if (matchedList.length > 0) { // 执行对应逻辑 }
内容的提问来源于stack exchange,提问作者Gamepigeek
相关产品推荐
相关产品推荐

