Maison  >  Article  >  interface Web  >  Comment vérifier efficacement les correspondances de sous-chaînes d’un tableau en JavaScript ?

Comment vérifier efficacement les correspondances de sous-chaînes d’un tableau en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 09:03:29161parcourir

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

Correspondance de chaînes avec des sous-chaînes de tableau en JavaScript

Problème : Comment déterminer efficacement si une chaîne donnée contient une sous-chaîne d'un tableau prédéfini en JavaScript ?

Solution :

Il existe deux approches que vous pouvez adopter pour cette tâche :

1. Méthode Array.some() :

La méthode array.some() permet de vérifier si au moins un élément du tableau satisfait une condition donnée. Vous pouvez l'utiliser comme suit :

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

Ou, avec les fonctions fléchées et la méthode include() :

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

2. Expression régulière :

Bien qu'il n'existe pas de fonction intégrée spécifiquement conçue pour ce type de recherche, vous pouvez construire une expression régulière pour correspondre aux sous-chaînes souhaitées et utiliser la méthode test() sur la chaîne. Cependant, cette approche peut être coûteuse en termes de calcul pour les grands tableaux et chaînes.

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

Exemple :

Considérez le tableau suivant de sous-chaînes et deux chaînes différentes :

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

let str1 = "this has one";
let str2 = "this doesn't have any";</code>

Utilisation de l'approche 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>

Sortie :

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>

Sortie :

No match using "this doesn't have any"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Nombre - Défis JavaScriptArticle suivant:Nombre - Défis JavaScript