Maison > interface Web > js tutoriel > le corps du texte

Comment rechercher des correspondances dans des tableaux sur plusieurs tableaux en Javascript ?

Barbara Streisand
Libérer: 2024-10-31 01:58:29
original
710 Les gens l'ont consulté

How to Find Matches in Arrays Across Multiple Arrays in Javascript?

Recherche de correspondances dans des tableaux sur différents tableaux

Considérons un scénario dans lequel vous disposez de plusieurs tableaux JavaScript avec des valeurs de chaîne et vous devez trouver et extrayez uniquement les correspondances identiques dans chaque tableau.

Imaginez que vous ayez les tableaux suivants :

var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza'];
var arr2 = ['taco', 'fish', 'apple', 'pizza'];
var arr3 = ['banana', 'pizza', 'fish', 'apple'];
Copier après la connexion

Votre objectif est d'obtenir un tableau contenant uniquement les correspondances qui apparaissent dans les trois tableaux, qui seraient :

['apple', 'fish', 'pizza']
Copier après la connexion

Cette tâche peut être accomplie sans utiliser de bibliothèques externes. Une approche consiste à utiliser la méthode filter() en combinaison avec every().

var result = arrays.shift().filter(function(v) {
    return arrays.every(function(a) {
        return a.indexOf(v) !== -1;
    });
});
Copier après la connexion

Dans cette solution :

  • shift() supprime le premier tableau de la collection arrays.
  • filter() crée un nouveau tableau contenant uniquement les éléments qui passent un condition spécifiée.
  • every() vérifie si tous les éléments de la collection arrays satisfont à une condition.

Tri du tableau externe ( tableaux) basés sur la longueur peuvent optimiser les performances.

arrays.sort(function(a, b) {
    return a.length - b.length;
});
Copier après la connexion

De plus, si des doublons sont présents dans les tableaux, vous pouvez utiliser la méthode reduce() au lieu de filter().

var result = arrays.shift().reduce(function(res, v) {
    if (res.indexOf(v) === -1 && arrays.every(function(a) {
        return a.indexOf(v) !== -1;
    })) res.push(v);
    return res;
}, []);
Copier après la connexion

En utilisant ces méthodes, vous pouvez efficacement trouver des correspondances dans des tableaux sur plusieurs tableaux, même s'ils contiennent des longueurs inconnues ou des doublons.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!