Maison > interface Web > js tutoriel > le corps du texte

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

Linda Hamilton
Libérer: 2024-11-02 08:50:02
original
160 Les gens l'ont consulté

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

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

Sortie

[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]
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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!