Maison > Article > interface Web > Comment filtrer un tableau d'objets en fonction des propriétés correspondantes dans un autre tableau ?
Filtrage d'un tableau d'objets à l'aide d'un autre tableau d'objets
La tâche à accomplir est de filtrer un tableau d'objets (myArray) en fonction d'un deuxième tableau d'objets (myFilter) pour renvoyer uniquement les objets de myArray dont les propriétés userid et projectid correspondent à celles de myFilter.
Solution
Pour y parvenir, nous utilisons un combinaison de filtre et de quelques méthodes. La méthode filter parcourt chaque élément de myArray et renvoie un nouveau tableau contenant uniquement les éléments qui satisfont à une condition donnée. Dans ce cas, la condition est satisfaite si l'ID utilisateur et l'ID de projet de l'élément correspondent à l'une des paires ID utilisateur et ID de projet dans myFilter.
La méthode some est utilisée dans la condition de filtre pour déterminer si l'un des éléments de myFilter répond les critères spécifiés. La condition vérifie si les propriétés userid et projectid de l'élément myFilter actuel sont égales à celles de l'élément myArray actuel. Si une correspondance est trouvée, la méthode some renvoie true, indiquant que la condition est remplie et que l'élément doit être inclus dans le tableau filtré.
Exemple de code
<code class="js">const myArray = [ { userid: "100", projectid: "10", rowid: "0" }, { userid: "101", projectid: "11", rowid: "1"}, { userid: "102", projectid: "12", rowid: "2" }, { userid: "103", projectid: "13", rowid: "3" }, { userid: "101", projectid: "10", rowid: "4" } ]; const myFilter = [ { userid: "101", projectid: "11" }, { userid: "102", projectid: "12" }, { userid: "103", projectid: "11"} ]; const myArrayFiltered = myArray.filter((el) => { return myFilter.some((f) => { return f.userid === el.userid && f.projectid === el.projectid; }); }); console.log(myArrayFiltered);</code>
Sortie
[ { userid: "101", projectid: "11", rowid: "1" }, { userid: "102", projectid: "12", rowid: "2" } ]
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!