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

如何判断目标字符串数组是否包含关键词数组所有元素的子串?

解决方案:判断数组是否包含所有关键词子串

这个需求其实很清晰,核心就是验证关键词数组里的每一项,都能在目标数组的至少一个元素中找到匹配的子串。我来给你写个简单的实现方案,用JavaScript的话可以这样做:

核心实现代码

function hasAllSubstrings(targetArray, keywords) {
  // 确保每一个关键词都能在目标数组中找到匹配的子串
  return keywords.every(keyword => {
    // 检查目标数组中是否存在至少一个元素包含当前关键词
    return targetArray.some(element => element.includes(keyword));
  });
}

测试你的示例场景

// 定义你给出的测试数组
const array1 = ["Lorem", "ipsum", "dolor", "sit", "amet"];
const array2 = ["Lorem", "ipsum"];
const keywords = ["ipsum", "dol"];

// 执行测试
console.log(hasAllSubstrings(array1, keywords)); // 输出 true
console.log(hasAllSubstrings(array2, keywords)); // 输出 false

逻辑解释

  • keywords.every(...):遍历关键词数组,要求所有关键词都必须通过验证,只要有一个不满足,整个函数就返回false
  • targetArray.some(...):针对单个关键词,检查目标数组中是否至少有一个元素包含该关键词作为子串,element.includes(keyword)是判断子串存在的核心方法

扩展:忽略大小写匹配

如果你的场景需要忽略大小写(比如关键词是"DOL"也能匹配"dolor"),可以修改判断逻辑,统一转成小写(或大写)后再比较:

function hasAllSubstringsIgnoreCase(targetArray, keywords) {
  return keywords.every(keyword => {
    const lowerKeyword = keyword.toLowerCase();
    return targetArray.some(element => 
      element.toLowerCase().includes(lowerKeyword)
    );
  });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:46:15