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

如何检查指定字符串是否为数组任意元素的子串?

判断字符串是否存在于数组元素中的几种方法

针对给定的字符串 s="abc" 和数组 arr=["pnq","dwksnn","inabcpi","poals"],以下是几种能让判断条件返回true的实现方法:

1. 用 Array.some() + String.includes()(推荐)

这是最简洁高效的写法,some() 会遍历数组,只要有一个元素满足条件就立即返回true,无需遍历全部元素:

const s = "abc";
const arr = ["pnq","dwksnn","inabcpi","poals"];
const result = arr.some(item => item.includes(s));
// result 为 true,因为"inabcpi"包含"abc"

2. 用 Array.find()

find() 会返回第一个符合条件的元素,将其转为布尔值即可得到结果:

const result = Boolean(arr.find(item => item.includes(s)));
// 或用双感叹号强制转布尔:!!arr.find(item => item.includes(s))

3. 用 Array.filter()

filter() 会返回所有包含目标字符串的元素组成的数组,判断数组长度是否大于0即可:

const result = arr.filter(item => item.includes(s)).length > 0;

注意:这种方法会遍历完整个数组,性能略逊于some(),但结果准确。

4. 手动循环遍历

可以用传统的for循环或for...of循环,手动检查每个元素:

// for循环写法
function checkContains(arr, s) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].includes(s)) {
      return true;
    }
  }
  return false;
}
const result = checkContains(arr, s);

// for...of循环写法
function checkContains(arr, s) {
  for (const item of arr) {
    if (item.includes(s)) {
      return true;
    }
  }
  return false;
}
const result = checkContains(arr, s);

5. 用 Array.some() + String.indexOf()

如果是兼容旧环境(不支持includes()),可以用indexOf()替代,判断返回值不等于-1即表示包含:

const result = arr.some(item => item.indexOf(s) !== -1);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:40:19