Filtrer un tableau à partir de tous les éléments d'un autre tableau est une tâche de programmation courante. En JavaScript, on utilise généralement la fonction .filter() pour y parvenir. Cependant, comprendre comment fournir à la fonction les valeurs à supprimer peut être difficile.
Considérez le scénario suivant :
var array = [1,2,3,4]; var anotherOne = [2,4]; var filteredArray = array.filter(myCallback); // filteredArray should now be [1,3] function myCallBack(){ return element ! filteredArray; //which clearly can't work since we don't have the reference <,< }
Dans l'exemple ci-dessus, la fonction myCallBack tente de renvoyer un élément qui n'est pas présent dans le tableau filtré, mais cette logique ne fonctionnera pas car filteredArray n'est pas encore défini lorsque la fonction est appelée.
Pour filtrer un tableau à l'aide de la fonction filter(), il faut passer une fonction de rappel qui renvoie true pour les éléments qui doivent être inclus dans le tableau filtré et renvoie false pour les éléments qui doivent être supprimés. Le tableau filtré est ensuite créé en appliquant la fonction de rappel à chaque élément du tableau d'origine.
Dans le cas du filtrage d'un tableau à partir de tous les éléments d'un autre tableau, la fonction de rappel peut être simplifiée, comme indiqué dans le code suivant :
var arr1 = [1,2,3,4], arr2 = [2,4], res = arr1.filter(item => !arr2.includes(item)); console.log(res); // Output: [1,3]
Ici, la fonction filter() parcourt arr1 et appelle la fonction de rappel pour chaque élément. La fonction de rappel, item => !arr2.includes(item), renvoie true pour les éléments qui ne sont pas présents dans arr2 et false sinon. En conséquence, le tableau filtré res ne contient que les éléments [1,3] qui ne sont pas dans arr2.
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!