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'];
Votre objectif est d'obtenir un tableau contenant uniquement les correspondances qui apparaissent dans les trois tableaux, qui seraient :
['apple', 'fish', 'pizza']
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; }); });
Dans cette solution :
Tri du tableau externe ( tableaux) basés sur la longueur peuvent optimiser les performances.
arrays.sort(function(a, b) { return a.length - b.length; });
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; }, []);
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!