const things = [
{place:"here",name:"stuff"},
{place:"there",name:"morestuff"},
{place:"there",name:"morestuff"}
];
const filteredArr = things.reduce((thing, current) => {
const x = thing.find(item => item.place === current.place);
if (!x) {
return thing.concat([current]);
} else {
return thing;
}
}, []);
console.log(filteredArr)
Solution via Set
Objet | Selon le type de données
const seen = new Set();
const things = [
{place:"here",name:"stuff"},
{place:"there",name:"morestuff"},
{place:"there",name:"morestuff"}
];
const filteredArr = things.filter(el => {
const duplicate = seen.has(el.place);
seen.add(el.place);
return !duplicate;
});
console.log(filteredArr)
Set
Caractéristique de l'objet
Chaque valeur dans l'objet Set doit être unique, l'égalité des valeurs sera vérifiée.
L'objet Set a pour but de stocker des valeurs uniques en fonction du type de données, qu'il s'agisse de valeurs primitives ou de références d'objets. Il possède quatre méthodes d'instance très utiles. add
, clear
, has
& delete
.
Caractéristique unique et type de données :..
add
méthode
il est pousser les données uniques dans la collection par défaut aussi préserver le type de données ... ce qui signifie qu'il empêche de pousser l'élément en double dans la collection aussi il va vérifier le type de données par défaut ....
has
méthode
Il est parfois nécessaire de vérifier l'existence d'un élément de données dans la collection et c'est une méthode pratique pour que la collection puisse vérifier l'identité unique de l'élément et le type de données.
delete
méthode
il retirera un élément spécifique de la collection en identifiant le type de données
clear
méthode
cela supprimera tous les éléments de la collection d'une variable spécifique et la définira comme un objet vide.
Set
L'objet a également Méthodes d'itération & plus de fonctionnalités
Mieux lire d'ici : Set - JavaScript | MDN
0 votes
Voulez-vous dire comment empêcher qu'une table de hachage/un objet avec tous les mêmes paramètres soit ajouté à un tableau ?
9 votes
Mathew -> S'il est plus simple d'empêcher un objet en double d'être ajouté au tableau en premier lieu, au lieu de le filtrer plus tard, oui, ce serait bien aussi.
18 votes
Je suis toujours surpris de voir comment les gens nomment leurs variables. Parfois, je pense qu'ils veulent vraiment rendre les choses inutilement compliquées. La prochaine étape sera
aaaaa.aaaa.push(...)
:)2 votes
Downmodded pour
things.thing
. Cela complique inutilement la question et la réponse.0 votes
Des réponses super longues et pourtant MDN a probablement les réponses les plus courtes :
arrayWithNoDuplicates = Array.from(new Set(myArray))
7 votes
@tonkatata Cela ne fonctionne pas avec les tableaux d'objets.