Voici une solution utilisant la nouvelle fonction de filtre de JavaScript qui est assez facile. Disons que vous avez un tableau comme celui-ci.
var duplicatesArray = ['AKASH','AKASH','NAVIN','HARISH','NAVIN','HARISH','AKASH','MANJULIKA','AKASH','TAPASWENI','MANJULIKA','HARISH','TAPASWENI','AKASH','MANISH','HARISH','TAPASWENI','MANJULIKA','MANISH'];
La fonction de filtre vous permettra de créer un nouveau tableau, en utilisant une fonction de rappel une fois pour chaque élément du tableau. Vous pouvez donc configurer le tableau unique de la manière suivante.
var uniqueArray = duplicatesArray.filter(function(elem, pos) {return duplicatesArray.indexOf(elem) == pos;});
Dans ce scénario, votre tableau unique va parcourir toutes les valeurs du tableau dupliqué. La variable elem représente la valeur de l'élément dans le tableau (mike,james,james,alex), la position est sa position indexée sur 0 dans le tableau (0,1,2,3...), et la valeur duplicatesArray.indexOf(elem) est juste l'index de la première occurrence de cet élément dans le tableau original. Ainsi, comme l'élément 'james' est dupliqué, lorsque nous parcourons en boucle tous les éléments de duplicatesArray et que nous les poussons vers uniqueArray, la première fois que nous rencontrons james, notre valeur "pos" est 1, et notre indexOf(elem) est également 1, donc James est poussé vers uniqueArray. La deuxième fois que nous touchons James, notre valeur "pos" est 2, et notre indexOf(elem) est toujours 1 (parce qu'il ne trouve que la première instance d'un élément du tableau), donc le double n'est pas poussé. Par conséquent, notre uniqueArray ne contient que des valeurs uniques.
Voici la démo de la fonction ci-dessus. Cliquez ici pour l'exemple de fonction ci-dessus
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.