首頁 > 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學習者快速成長!