Lorsque vous travaillez avec un tableau d'objets, il est souvent nécessaire de supprimer les doublons. La méthode de filtrage ES6 fournit une solution élégante pour cette tâche.
obj.arr = obj.arr.filter((value, index, self ) =>
index === self.findIndex((t) => (
t.place === value.place && t.name === value.name
))
)
Ce code compare chaque élément du tableau avec tous les éléments suivants. Si un doublon est trouvé, il est filtré.
Pour une approche plus générique :
const uniqueArray = obj. arr.filter((valeur, index) => {
const _value = JSON.stringify(value);
return index === obj.arr.findIndex(obj => {
return JSON.stringify(obj) === _value;
});
});
Cette stratégie sérialise chaque objet en une chaîne et compare les chaînes pour identifier doublons.
Utilisation de la stratégie de propriété :
const getUniqueItemsByProperties = (items, propNames) =>
items.filter((item, index, array) =>
index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames))
);
Cette approche offre une flexibilité dans la spécification des propriétés sur lesquelles l'unicité est déterminée .
Pour autoriser à la fois les noms de tableaux et de propriétés uniques :
const getUniqueItemsByProperties = (items, propNames) => {
const propNamesArray = Array.from(propNames);
return items.filter((item, index, array) =>
index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNamesArray))
);
};
L'idée clé ici est d'utiliser la méthode de filtrage pour identifier les doublons. Les critères d'unicité sont déterminés par la logique de comparaison, qui peut être personnalisée en fonction des propriétés de l'objet ou d'une stratégie de sérialisation.
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!