Maison > interface Web > js tutoriel > 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
Libérer: 2024-10-31 09:03:29
original
282 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

Sortie :

Match using "this has one"
Copier après la connexion
<code class="javascript">if (substrings.some(v => str2.includes(v))) {
  console.log(`Match using "${str2}"`);
} else {
  console.log(`No match using "${str2}"`);
}</code>
Copier après la connexion

Sortie :

No match using "this doesn't have any"
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal