Maison > interface Web > js tutoriel > Comment puis-je supprimer efficacement les objets en double d'un tableau en JavaScript ?

Comment puis-je supprimer efficacement les objets en double d'un tableau en JavaScript ?

DDD
Libérer: 2024-12-21 19:53:12
original
218 Les gens l'ont consulté

How Can I Efficiently Remove Duplicate Objects from an Array in JavaScript?

Suppression des doublons d'un tableau d'objets : une exploration détaillée

Cet article se penche sur un problème courant rencontré lorsque l'on travaille avec des tableaux d'objets : la suppression des entrées en double. Notre objectif est de fournir une compréhension approfondie des meilleures méthodes pour accomplir cette tâche.

Énoncé du problème

Considérez l'objet suivant :

obj = {};
obj.arr = new Array();
obj.arr.push({place: "here", name: "stuff"});
obj.arr.push({place: "there", name: "morestuff"});
obj.arr.push({place: "there", name: "morestuff"});
Copier après la connexion

Notre objectif est de supprimer les objets en double d'obj.arr afin qu'il ne contienne que des éléments uniques.

ES6 Magie

En tirant parti de la puissance d'ES6, nous pouvons utiliser une solution unique :

obj.arr = obj.arr.filter((value, index, self) =>
  index === self.findIndex((t) => (
    t.place === value.place && t.name === value.name
  ))
);
Copier après la connexion

Approche générique

Pour une solution plus polyvalente, considérez le code suivant :

const uniqueArray = obj.arr.filter((value, index) => {
  const _value = JSON.stringify(value);
  return index === obj.arr.findIndex(obj => {
    return JSON.stringify(obj) === _value;
  });
});
Copier après la connexion

Property Stratégie

Une approche alternative consiste à comparer les propriétés des objets :

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

Explication

Les solutions fournies utilisent les éléments suivants concepts :

  • filtre : Sélectionne les éléments du tableau qui répondent à un condition.
  • findIndex : Renvoie l'index du premier élément du tableau qui remplit la condition.
  • Comparaison de propriétés : Détermine si deux objets avoir des valeurs identiques pour un ensemble de propriétés spécifiées.

En employant ces stratégies, nous pouvons supprimer efficacement les objets en double d'un tableau, garantissant que chaque élément est unique.

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