Maison  >  Article  >  interface Web  >  Comment filtrer un tableau d'objets en fonction des propriétés correspondantes avec un autre tableau d'objets ?

Comment filtrer un tableau d'objets en fonction des propriétés correspondantes avec un autre tableau d'objets ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 23:41:29990parcourir

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

Filtrage d'un tableau d'objets avec un autre tableau d'objets

Considérez les tableaux d'objets suivants :

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"
}]

L'objectif est de filtrer myArray à l'aide de myFilter de telle sorte que seuls les objets de myArray qui ont un ID utilisateur et un ID de projet correspondants les valeurs avec les objets dans myFilter sont incluses dans le tableau filtré.

Solution :

Nous pouvons utiliser le filtre et certaines méthodes de tableau pour réaliser ce filtrage :

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

Explication :

  • La méthode de filtrage parcourt chaque élément de myArray.
  • Pour chaque élément, la méthode some est utilisée pour vérifier s'il existe un élément dans myFilter où les valeurs userid et projectid correspondent à l'élément actuel.
  • Si une telle correspondance est trouvée pour un élément de myFilter, l'élément actuel de myArray est inclus dans le tableau myArrayFiltered.
  • Dans le cas contraire, il est exclu.

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