首页 > web前端 > js教程 > 正文

如何在 JavaScript 中高效地检查数组中的子字符串匹配项?

Mary-Kate Olsen
发布: 2024-10-31 09:03:29
原创
160 人浏览过

How to Efficiently Check for Substring Matches from an Array in JavaScript?

JavaScript 中的字符串与数组子字符串匹配

问题: 如何有效地确定给定字符串是否包含 JavaScript 中预定义数组中的任何子字符串?

解决方案:

您可以采取两种方法来完成此任务:

1。 Array.some() 方法:

array.some() 方法允许您检查数组中是否至少有一个元素满足给定条件。您可以按如下方式使用它:

<code class="javascript">if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) {
  // There's at least one matching substring
}</code>
登录后复制

或者,使用箭头函数和includes()方法:

<code class="javascript">if (substrings.some(v => str.includes(v))) {
  // There's at least one matching substring
}</code>
登录后复制

2.正则表达式:

虽然没有专门为此类搜索设计的内置函数,但您可以构造正则表达式来匹配所需的子字符串,并在字符串上使用 test() 方法。但是,对于大型数组和字符串,这种方法的计算成本可能很高。

<code class="javascript">const regex = new RegExp(`( ${substrings.join(' | ')} )`, 'g');
if (regex.test(str)) {
  // There's at least one matching substring
}</code>
登录后复制

示例:

考虑以下子字符串数组和两个不同的字符串:

<code class="javascript">const substrings = ["one", "two", "three"];

let str1 = "this has one";
let str2 = "this doesn't have any";</code>
登录后复制

使用 array.some() 方法:

<code class="javascript">if (substrings.some(v => str1.includes(v))) {
  console.log(`Match using "${str1}"`);
} else {
  console.log(`No match using "${str1}"`);
}</code>
登录后复制

输出:

Match using "this has one"
登录后复制
<code class="javascript">if (substrings.some(v => str2.includes(v))) {
  console.log(`Match using "${str2}"`);
} else {
  console.log(`No match using "${str2}"`);
}</code>
登录后复制

输出:

No match using "this doesn't have any"
登录后复制

以上是如何在 JavaScript 中高效地检查数组中的子字符串匹配项?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!