Maison >interface Web >js tutoriel >Comment trouver des éléments correspondants dans plusieurs tableaux JavaScript ?
Étant donné plusieurs tableaux JavaScript de valeurs de chaîne, recherchez les éléments qui apparaissent de manière identique dans tous les tableaux. Par exemple :
<code class="javascript">var arr1 = ['apple', 'orange', 'banana', 'pear', 'fish', 'pancake', 'taco', 'pizza']; var arr2 = ['taco', 'fish', 'apple', 'pizza']; var arr3 = ['banana', 'pizza', 'fish', 'apple'];</code>
Résultat attendu :
<code class="javascript">['apple', 'fish', 'pizza']</code>
Pour trouver les éléments correspondants, nous pouvons utiliser une combinaison de méthodes Array :
<code class="javascript">const arrays = [arr1, arr2, arr3]; const result = arrays.shift().filter((v) => { return arrays.every((a) => { return a.indexOf(v) !== -1; }); });</code>
Étapes :
En appliquant cette logique de manière itérative à chaque tableau, nous pouvons effectivement trouver les éléments qui apparaissent de manière identique dans tous les tableaux fournis.
Gestion des éléments en double :
La solution fournie suppose que les tableaux ne contiennent pas d'éléments en double. Si tel est le cas, vous pouvez modifier le code comme suit :
<code class="javascript">const result = arrays.shift().reduce((res, v) => { if (res.indexOf(v) === -1 && arrays.every((a) => { return a.indexOf(v) !== -1; })) res.push(v); return res; }, []);</code>
Ce code utilise .reduce() au lieu de .filter(). Il vérifie les doublons dans le tableau de résultats et ajoute uniquement des éléments uniques présents dans chaque tableau.
Nombre arbitraire de tableaux :
La solution est conçue pour fonctionner avec un nombre inconnu de tableaux. En utilisant arrays.shift(), nous pouvons comparer séquentiellement le premier tableau aux tableaux restants jusqu'à ce que tous les tableaux aient été traités.
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!