JavaScript中如何判断字符串数组是否包含给定字符串的子串?
简洁实现方式:用数组的
some()方法 嘿,你完全不用写手动循环来做这个判断!JavaScript的数组内置方法some()正好能完美解决这个需求,代码简洁还高效。
先明确你的需求:检查listofstrings数组中是否存在某个元素是teststring的子串(也就是teststring包含该元素),对应的判断逻辑可以用some()一行搞定:
代码示例
var teststring = "Hello"; var listofstrings = ["Hellothere", "Welcome", "Helloworld", "Some String"]; // 检查数组中是否有元素是teststring的子串(现代写法) const hasMatchingSubstring = listofstrings.some(str => teststring.includes(str)); // 兼容老浏览器的indexOf写法 const hasMatchingSubstring = listofstrings.some(str => teststring.indexOf(str) > -1);
为什么用some()?
some()会遍历数组,只要找到第一个满足条件的元素就立即停止遍历,比手动写循环还高效,不用浪费性能遍历完整个数组。- 回调函数里直接写判断逻辑,代码可读性拉满,一眼就能看懂要做什么。
补充:如果需求反过来?
如果其实你是想检查listofstrings中是否有元素包含teststring作为子串(比如判断"Helloworld"里有没有"Hello"),那只需要把判断条件反过来就行:
const hasParentString = listofstrings.some(str => str.includes(teststring));
内容的提问来源于stack exchange,提问作者Rolando
相关产品推荐
相关产品推荐

