Maison  >  Article  >  interface Web  >  Comment filtrer un tableau d'objets en fonction des correspondances avec un autre tableau ?

Comment filtrer un tableau d'objets en fonction des correspondances avec un autre tableau ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-01 08:39:02397parcourir

How to Filter an Array of Objects Based on Matches with Another Array?

Filtrer un tableau d'objets avec un autre tableau d'objets

Problème :

Vous voulez pour filtrer un tableau d'objets en fonction des correspondances avec un deuxième tableau d'objets. Par exemple, étant donné les tableaux suivants :

<code class="js">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" },
];
myFilter = [
  { userid: "101", projectid: "11" },
  { userid: "102", projectid: "12" },
  { userid: "103", projectid: "11" },
];</code>

Vous devez filtrer myArray pour inclure uniquement les objets dont les propriétés userid et projectid correspondent à celles de myFilter. Le résultat attendu est :

<code class="js">myArrayFiltered = [
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" },
];</code>

Solution :

Pour filtrer le tableau, vous pouvez utiliser le filtre et certaines méthodes de tableau :

<code class="js">const myArrayFiltered = myArray.filter((el) => {
  return myFilter.some((f) => {
    return f.userid === el.userid && f.projectid === el.projectid;
  });
});</code>

Explication :

  • La méthode de filtrage parcourt myArray et crée un nouveau tableau contenant uniquement les objets qui satisfont à la condition fournie en argument.
  • Le une méthode, utilisée dans la condition, vérifie si un élément de myFilter correspond aux propriétés userid et projectid de l'élément actuel dans myArray.
  • Si une correspondance est trouvée, la méthode some renvoie true, indiquant que l'élément actuel doit être inclus dans le tableau filtré.

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!

Déclaration:
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