Maison > interface Web > js tutoriel > 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
Libérer: 2024-11-01 08:39:02
original
491 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal