Maison > interface Web > js tutoriel > Comment filtrer un tableau d'objets en fonction d'un autre tableau d'objets ?

Comment filtrer un tableau d'objets en fonction d'un autre tableau d'objets ?

DDD
Libérer: 2024-11-02 03:34:30
original
565 Les gens l'ont consulté

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

Filtrer un tableau d'objets en fonction d'un autre tableau d'objets

Problème :

Étant donné deux tableaux d'objets, le but est de filtrer le premier tableau en fonction d'un critère spécifique en utilisant le deuxième tableau comme référence. Plus précisément, nous souhaitons filtrer le premier tableau pour inclure uniquement les objets qui correspondent à des propriétés spécifiques (ID utilisateur et ID de projet) avec les objets du deuxième tableau.

Solution :

en utilisant le filtre et certaines méthodes du tableau, nous pouvons obtenir la solution suivante :

  1. Itération du premier tableau :
    Utilisez la méthode de filtrage sur le premier tableau pour parcourir chaque élément.
  2. Match Check :
    Dans la fonction de rappel de filtre, utilisez la méthode some sur le deuxième tableau pour vérifier s'il existe un objet qui correspond à l'élément actuel du premier. tableau basé sur les propriétés userid et projectid.
  3. Filtrage :
    S'il y a une correspondance, la fonction some retournera true, ce qui conservera cet élément dans le tableau de résultats filtré.

Exemple :

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

Résultat attendu :

<code class="js">[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]</code>
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal