Comment éliminer les objets en double d'un tableau
Votre requête consiste à supprimer efficacement les objets en double d'un tableau au sein d'un objet. Explorons quelques techniques efficaces pour atteindre cet objectif.
Solution ES6 :
En introduisant une touche d'élégance ES6, nous pouvons utiliser les méthodes filter et findIndex :
obj.arr = obj.arr.filter((value, index, self) => index === self.findIndex((t) => ( t.place === value.place && t.name === value.name )) );
Cette approche garantit que seuls les objets uniques restent dans le tableau.
Générique Solution :
Pour une solution plus polyvalente, envisagez :
const uniqueArray = obj.arr.filter((value, index) => { const _value = JSON.stringify(value); return index === obj.arr.findIndex(obj => { return JSON.stringify(obj) === _value; }); });
Cette méthode utilise la stringification JSON pour comparer des objets en fonction de leurs valeurs de propriété.
Filtrage basé sur les propriétés :
Alternativement, vous pouvez définir une fonction pour comparer les objets par des critères spécifiques. propriétés :
const isPropValuesEqual = (subject, target, propNames) => propNames.every(propName => subject[propName] === target[propName]); const getUniqueItemsByProperties = (items, propNames) => items.filter((item, index, array) => index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames)) );
Cette fonction renvoie un tableau contenant des objets uniques basés sur les noms de propriétés spécifiés.
Explication :
En tirant parti de ces techniques, vous pouvez supprimer efficacement dupliquez les objets d'un tableau, vous permettant de travailler avec un ensemble de données propre et concis.
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!